Htaccess更改URL大小写(如果目录存在)


Htaccess changing URL case if directory exists

我遇到的问题是,当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]