使用 .htaccess 文件实现 url 重写,而不影响 $_SERVER['SCRIPT_NAME']


Implementing url rewriting using .htaccess file without affecting $_SERVER['SCRIPT_NAME']

我想为我的ERP产品设置SaaS(软件即服务(版本。购买产品的每个用户都可以使用特定于每个用户的 url(例如:erp.com/user1/(访问产品。但是不会为每个用户创建一个物理文件夹,它将是一个虚拟文件夹,并且将有一个程序文件的副本,该副本将位于根目录中。

我尝试过使用 htaccess 文件,在这里包含我编写的代码,它不是通用解决方案,它仅适用于"folder1"的情况

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^folder1/(.*)$ /$1 [QSA]
</IfModule> 

问题是当我实现 $_SERVER['SCRIPT_NAME'] 返回"erp.com/"时,我需要得到"erp.com/folder1/"而不是这个,也请向我建议一个通用的解决方案。

谢谢。

而不是$_SERVER["SCRIPT_NAME"]你需要使用:

$_SERVER["REQUEST_URI"]

这将具有以下价值:

/folder1/foobar

通用规则

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^[^/]+/(.*)$ /$1 [L]