当前的vhost_config.conf具有可用的映射和重写规则,如下所示。
1: RewriteMap vanityURL txt: vanity_map.txt
2: RewriteCond ${vaintyURL:$1|not-found} ^(.+)$
3: RewriteCond %1 ~^not-found$
4: RewriteRule ^/(.*) /${vanityURL:$1|/$1} [L]
我需要发生的是映射的URLS忽略大小写。
你要说的第一件事是“添加[NC]
”,你认为这是正确的,但它没有任何影响。
我见过有关将所有映射都以小写字母表示的问题,但这并没有解决有人在/BlackFriday
或/BlaCKFridAY
中输入的问题(无论出于何种原因,可能会被迫做这样的事情。)
我遇到的问题是使用诸如
之类的行 RewriteRule ^/(.*) /${vanityURL:$1|/$1} [L, NC]
没有影响。
我是否需要在其中一个条件或地图声明中提前使用[NC]
标志?
为什么第4行的'ignore-case'标志不起作用? 还有其他我缺少的东西吗?
答案 0 :(得分:2)
这可以在这里工作:
列出'o urls list.txt
test1 POMPOM
test2 pompom
test3 PomPom
apache主机配置:
RewriteEngine On
RewriteMap lc int:tolower
RewriteMap test txt:/var/www/list.txt
RewriteRule /(.*)$ /${test:${lc:$1}|$1} [R=301]
(外部重定向,因此在此测试中更容易观察到)
这意味着:
example.com/TEST1
example.com/test1
example.com/TeSt1
...全部重定向到example.com/POMPOM
example.com/TEST2
example.com/test2
example.com/TeSt2
...全部重定向到example.com/pompom
...所以保留了替换的情况,