我遇到的问题是,当URL包含一个存在的目录时,URL会根据文件的大小写进行更改。
更具体地说,这就是正在发生的事情:
当我转到domain.com/cron/xxx
时,在我的PHP脚本中,uri
将是:
cron/xxx
但如果文件夹Cron
存在,则uri
将为:
Cron/xxx
有人知道发生这种事的原因吗?
这是我的.htaccess
文件:
上的重写引擎
#remove www.
RewriteCond %{HTTP_HOST} ^www'.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^api
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?uri=api/$1 [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?uri=$1 [L,QSA]
我对ModRewrite不是很精通,但你可以试试:
RewriteMap lc int:tolower
然后在你的规则中这样使用:
RewriteRule (.*) ${lc:$1} [R=301,L]