regex - 在 mod_rewrite 规则中转换为小写

标签 regex apache mod-rewrite url-rewriting

我希望像 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/

相关文章:

javascript - 如何在 JavaScript 中执行不区分大小写的替换?

Notepad++ 背后的正则表达式正面

java - Apache XML 安全库是否与 IBM JDK 兼容

apache - Windows 10 上的 XAMPP 和 Skype 端口冲突

java - Procrun 与 org.apache.commons.daemon.Daemon

.htaccess - 简单的 .htaccess 重写以传递 1 个参数

apache - 如何从 htaccess 文件访问自定义 header ?

Java正则表达式

xml - 使用perl脚本拆分xml文件

php - Htaccess 重写匹配相同的模式