我在域的子目录中有一个网站 (example.com/folder)
在这个文件夹中,我有一个带有此代码的 .htaccess
RewriteEngine On
RewriteRule . index.php
当我对此http://www.example.com/folder/example/request
发出请求时,我的$_SERVER['REQUEST_URI']
设置为 /folder/example/request
.
我怎样才能强制 apache 不将/folder/
放入request_uri变量中。
既然你正在处理$_SERVER['REQUEST_URI']
你已经在PHP中了。如果/folder
存在,为什么不直接剥离呢?
顺便说一下,不要直接修改$_SERVER['REQUEST_URI']
,复制它,修改它,并将其传递给任何需要它的函数。
PHP 在操作字符串方面比 Apache 好得多。
你可以像这样制定规则:
RewriteEngine On
RewriteBase /folder/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?url=$1 [L,QSA]
并使用具有价值的$_GET['url']
:example/request