我希望像 server.com/foo 这样的 URL 不区分大小写。
但是 server.com/foo 实际上得到了 mod_rewrite'd 到 server.com/somedir/foo
(假设“somedir”中的所有文件都是小写的。)
所以问题是,如何完成如下所示的 mod_rewrite:
RewriteRule ^([^/]+)/?$ somedir/convert_to_lowercase($1)
PS:这是一个方便的 mod_rewrite 备忘单 -- http://dreev.es/modrewrite ——虽然它无法回答这个特定的问题。
PPS:感谢
Bee
和
Ignacio
在这方面的所有帮助。
另外,这里有一个相关的问题:
RewriteMap activation
最佳答案
首先,将以下行放入 <VirtualHost>
.conf 文件的部分。
(对于我住在 /etc/httpd/vhosts.d/00foo.conf
。)
RewriteMap lc int:tolower
您可以更换
lc
用你想要的任何名字。然后重启apache,你可以用
sudo service httpd restart
.最后,将其添加到您的 .htaccess 文件中:
RewriteRule ^/(.*)$ /${lc:$1}
关于regex - 在 mod_rewrite 规则中转换为小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2923658/