如果字母中包含大写字母,但如果它完全小写(如果匹配,则会导致无限循环),则需要将其重写为小写字母。Apache将小写字母重写为
我想出了这一点,但很困惑,为什么它不工作:
# /MaTcHeD to matched
RewriteCond %{REQUEST_URI} ^(?i)matched(\/.*)?$
RewriteRule ^[a-z]*[A-Z]+[^\/]*(\/.*)?$ /matched$1 [R=301,L]
对我来说这表示,如果URL为“一致”或“匹配”或“匹配”或“匹配”等。然后匹配如果在URL的开头处有任何小写字符([az]),后跟任何一个或多个大写字符([AZ]),后跟任何非“/”字符,则匹配网址的其余部分(可选“/”后面是其他任何内容)。如果这些条件是真的,那么重定向到小写“/匹配”。
我浏览过并看到许多匹配任何单词的解决方案,但这会导致问题,因为其他内容都是大写的。在任何情况下,我只需要“匹配”,但全部小写,重定向到全部小写的“匹配”。
任何不使用'RewriteMap'的理由? – 2012-08-01 15:26:42
我使用RewriteMap进行了研究,但它只是小写或大写,没有任何帮助。我需要匹配任何东西,只要它不全是小写。 – Jim 2012-08-02 17:53:14
然后在先前的规则中匹配所有小写字母,并禁止重写或跳过低分组规则。 – 2012-08-02 19:23:33