2015-09-21 6 views
1

Мне нужно перенаправить все возможные комбинации нижнего/верхнего регистра на нижний регистр, но только для одного конкретного URL-адреса example-url.Как перенаправить на нижний регистр, если конкретный url содержит хотя бы одну заглавную букву

Пример:

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

RewriteRule ^example-url(.*)$ /example-url$1 [NC,R=301,L] причина перенаправления петли ...

Спасибо за помощь!

ответ

1

Вы можете использовать предпросмотр, чтобы убедиться, что по крайней мере одну заглавную букву там с (?i) флагом, чтобы сделать его игнорируемых случай после опережающего просмотра:

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] 
+1

Совершенных. Это то, что я искал, но без флага NC. Благодаря! – Mateusz