0

我的 .htaccess 中有这个重写规则

RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^([^/.]+)/?(.*)$ /$1.php/$2 [QSA,L]
RewriteRule ^api/([a-z]+)/([a-z]+) /api/$1_$2.php

如何修改它以将我的 URL 中的所有内容更改为小写?

即这个:

www.mysite.com/ThisURL/SHOULD/be_all_lowercse

应该

www.mysite.com/thisurl/should/be_all_lowercase
4

2 回答 2

2

这篇文章描述了如何做到这一点:

RewriteEngine On
RewriteMap  lc int:tolower
RewriteCond %{REQUEST_URI} [A-Z]
RewriteRule (.*) ${lc:$1} [R=301,L]
于 2012-05-05T05:03:52.707 回答
1

定义int引用该函数的类型(内部)的 RewriteMap tolower,并在要进行小写的地方调用它:

RewriteMap  lc int:tolower
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^([^/.]+)/?(.*)$ /${lc:$1}.php/${lc:$2} [QSA,L]
RewriteRule ^api/([a-z]+)/([a-z]+) /api/${lc:$1}_${lc:$2}.php}
于 2012-05-05T05:07:25.137 回答