@GSA

Как реализовать 301 редирект для правил?

Впервые сталкиваюсь с редиректом и сложно представляю его возможности. Потому следующий вопрос)
Сайт перевели с joomla на bitrix.

1) Если в ссылке есть "/magazin/browse/manufacturer/", то заменить на "/manufacturer/"
2) Если в ссылке есть "/magazin/category/product/", то заменить на "/catalog/product/" и удалить содержимое до следующей "/"
3) Если в ссылке есть "/magazin/category/manufacturer/#SECTION_CODE#/#XML_ID#.html", то сформировать ссылку "/catalog/#SECTION_CODE#/filter/brands_ref-is-#XML_ID#/apply/"
4) Если в ссылке есть "/magazin/category/", то заменить на "/catalog/"

Данные правила не будут между собой конфликтовать?
  • Вопрос задан
  • 143 просмотра
Пригласить эксперта
Ответы на вопрос 1
shambler81
@shambler81 Куратор тега htaccess
Нет не будут если ты жестко пропишешь логику.

Для сладкой жизни
https://donatstudios.com/RewriteRule_Generator

Твой вопрос
RewriteCond %{REQUEST_URI} ^(.*)/dir1/(.*)$ 
# если строка содержит /dir1/ 
RewriteRule ^(.*)$ %1/dir2/%2 [R=301,L] 
#Перенаправить все урлы с начинающиеся с dir1 на dir2 с сохранением дальнейшей структуры URL


Но тебе как я понял нужно ТОЛЬКО страницу /magazin/browse/manufacturer/ а не все начинающиеся с /magazin/browse/manufacturer/
Так что ограничь
RewriteCond %{REQUEST_URI} ^(.*)/dir1(/|)$
(/|) - или со слешем
$ - конец строки
И вопрос который появится утебя потом
как исклчить определенную страницу а остальные перенаправить
Отрицание работает обсалютно на всю логику
RewriteCond %{REQUEST_URI} ^(.*)/magazin/category/manufacturer(/|)$ 
RewriteCond %{REQUEST_URI} !^/magazin/category/manufacturer/#SECTION_CODE#/#XML_ID#.html$ 
RewriteRule ^(.*)$ %1/dir2/%2 [R=301,L]

И того:

Если урл
если не содержит
То
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
28 мар. 2024, в 18:16
1000 руб./за проект
28 мар. 2024, в 18:15
90000 руб./за проект
28 мар. 2024, в 18:05
5000 руб./за проект