如果一个特定的单词中有一个大写字母,我需要将它重写为小写,但如果它完全是小写则不需要(如果它匹配它会导致无限循环)。
我想出了这个,但对它为什么不起作用感到困惑:
# /MaTcHeD to matched
RewriteCond %{REQUEST_URI} ^(?i)matched(\/.*)?$
RewriteRule ^[a-z]*[A-Z]+[^\/]*(\/.*)?$ /matched$1 [R=301,L]
对我来说,这表示如果 url 是“matched”或“Matched”或“mAtched”或“MAtched”等,那么如果在 url 的开头有任何小写字符 ([az]) 后跟任何一个或多个大写字母,则匹配字符 ([AZ]) 后跟任何非“/”字符,然后是 url 的其余部分(可选的“/”后跟其他任何字符)。如果这些条件为真,则重定向到小写的“/matched”。
我浏览并看到了许多匹配任何单词的解决方案,但这会导致问题,因为其他东西都是大写的。在任何情况下我都只需要“匹配”,但所有小写都需要重定向到所有小写“匹配”。