当特定网址包含至少一个大写字母时,如何重定向到小写

时间:2015-09-21 08:09:24

标签: apache .htaccess

我需要将所有可能的小写/大写网址组合重定向到小写,但仅限于一个特定的网址example-url

样品:

/eXample-url => /example-url /Example-Url => /example-url /examPle-URL => /example-url

RewriteRule ^example-url(.*)$ /example-url$1 [NC,R=301,L]导致重定向循环...

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

您可以使用前瞻来确保至少有一个带有(?i)标记的大写字母,以便在lookahead之后使其成为忽略大小写:

RewriteEngine On

RewriteRule ^(?=[^A-Z]*[A-Z])(?i)example-url(/.*)?$ /example-url$1 [R=302,L]
  • (?=[^A-Z]*[A-Z])是一个正向前瞻,以确保至少有一个大写字母。
  • (?i)用于制作模式忽略的其余部分。

没有前瞻的替代方案:

RewriteCond %{REQUEST_URI} [A-Z]
RewriteRule ^example-url(/.*)?$ /example-url$1 [R=302,L,NC]