Страницы

Поиск по вопросам

вторник, 16 июля 2019 г.

Помогите с .htaccess и регулярными выражениями

Ребят, помогите сделать редирект. Есть старые страницы каталога типа
example.com/catalog/item
Нужно сделать
example.com/item
Причем, если там, перед item встречается view, редирект отклоняется. То есть если
example.com/catalog/view/item
то адрес сохраняется. У меня есть такое, но в некоторых случаях оно почему-то работать отказывается
RewriteRule ^catalog/([^view].*)$ $1 [R=301,L]
Проблема в том, что если адрес такой
example.com/catalog/injektsionnye_preparaty/
то не работает. Помогите пожалуйста.
@saidolim хорошо. Смотрите, если у меня есть правило
RewriteRule ^catalog/([^view].*)$ $1 [R=301,L]
строка
http://example.com/catalog/view/theme
то её не должно никак обрабатывать. А если поступает строка
http://example.com/catalog/peptids_and_gr
то она обрабатывается и становится такой:
http://example.com/peptids_and_gr
Также должно быть и со строкой
http://example.com/catalog/injektsionnye_preparaty
Но почему-то ничего не происходит, хотя view после catalog нету. То есть, как я понимаю, если бы было
http://example.com/catalog/view/injektsionnye_preparaty
То тогда да, не прошло бы.. А тут обе эти строки не проходят
http://example.com/catalog/injektsionnye_preparaty http://example.com/catalog/view/injektsionnye_preparaty
Что скажете?


Ответ

А почему просто не пробовали
RewriteCond %{REQUEST_URI} !^catalog/view/(.*)$ RewriteRule ^catalog/(.*)$ $1 [R=301,L]

для тестирование http://htaccess.madewithlove.be/
Тест 1
http://example.com/catalog/item => http://example.com/item
Тест 2
http://example.com/catalog/view/item => http://example.com/catalog/view/item
Тест 3
http://example.com/catalog/injektsionnye_preparaty/ => http://example.com/injektsionnye_preparaty/

Комментариев нет:

Отправить комментарий