1

当前的 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 行的“忽略大小写”标志不起作用?还有什么我想念的吗?

4

1 回答 1

2

这在这里有效:

列出 'o 网址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

...因此保留了替换的情况,

于 2012-12-13T18:25:05.687 回答