2011-01-30 2 views
1

Я пытаюсь перенаправить все адреса, содержащие хотя бы один символ капитала.HTACCESS - regex/содержит заглавную букву?

т.е:

DonT перепишем - города/Nashville, но переписывания - города/Нэшвилл.

+0

Можете ли вы показать, что у вас есть на данный момент? –

+0

RewriteRule^ювелирные магазины/nashville $/jewelry/cities/nashville [L, R = 301] и я хочу, чтобы это было также - Nashville – WEBProject

+0

Как вы думаете, вы можете смотреть на это неправильно? Вам нужно перенаправить URL-адрес, или вы можете преобразовать его в нижний регистр на свой язык сценариев? –

ответ

2

Вы можете использовать NC flag игнорировать регистр для сопоставления с шаблоном:

RewriteRule ^jewelry-stores/nashville$ /jewelry/cities/nashville [L,R=301,NE] 

В противном случае, если вы хотите, чтобы проверить, по крайней мере, одной заглавной буквы, используйте [A-Z]:

RewriteRule ^jewelry-stores/([^A-Z]*[A-Z].*) /jewelry/cities/${tolower:$1} [L,R=301] 

Дополнительно internal mapping function tolower используется для перевода строки в строчный. (Обратите внимание, что RewriteMap требуется доступ к серверу или конфигурации виртуального хоста.)

+0

Работает как очарование, спасибо! – WEBProject

2

что-то вроде

RewriteRule ^citites/.*[A-Z].*$ /whatever [L,R=301] 

должен работать, как ожидалось

+2

и как всегда http://gskinner.com/RegExr/ - лучший инструмент для проверки вашего регулярного выражения :) – roman

Смежные вопросы