@MiXaLiN17

Регулярное выражение для смены шаблона?

Добрый день. На сайте изменяем url адрес для товаров и разделов. Был соответственно /catalog/section_code/, /catalog/section_code/product_id/. Новые шаблоны страниц принимают вид следующий: /catalog/books-section_code/, /catalog/book-product_id/. Пытаюсь составить регулярное выражение под данные шаблоны, для редиректа со старого адреса на новый. Адреса вида /catalog/books-text/.../ и /catalog/book-text/ надо исключить из правила редиректов
Пишу так: ^\/catalog\/((?:(? тестирую: /catalog/bookss-psihologiya/30987/
Работает как предполагается, но есть нюанс, то что в группе получаю "bookss-psihologiya/30987", а надо получать без id, как это переделать?
  • Вопрос задан
  • 109 просмотров
Решения вопроса 1
@dodo512
Для исключения "book-" и "books-" нужно после catalog/ добавить (?!books?-)
RewriteRule ^(catalog)/(?!books?-)([^/]+)/$        /$1/books-$2/ [R=301,L]
RewriteRule ^(catalog)/(?!books?-)[^/]+/([^/]+)/$  /$1/book-$2/  [R=301,L]


Или
RedirectMatch ^/(catalog)/(?!books?-)([^/]+)/$        /$1/books-$2/
RedirectMatch ^/(catalog)/(?!books?-)[^/]+/([^/]+)/$  /$1/book-$2/
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы