north_leshiy
@north_leshiy
Руководитель направления разработки

Как избавиться от цилического запроса в .htaccess и сделать ЧПУ?

У нас есть страница
site.com/?id=1&bla=2&blabla=3

Для нее есть задачи:
1. Точечно сделать ЧПУ, при этом не трогая вообще механизм ЧПУ системы.
2. Сделать редирект со старого урла на новый

Делаем правило:
RewriteRule ^mychpu$ /?id=1&bla=2&blabla=3 [L]
ЧПУ работает, страница отдается как будто бы расположена по адресу site.com/mychpu

А теперь нужно сделать редирект со старого урла на новый...
RewriteCond %{QUERY_STRING} ^id=1&bla=2&blabla=3$
RewriteRule ^.*$ http://site.com/mychpu [R=301,L]

И получается цикл =(

Как сделать чтобы правило не работало в случае внутренней переадресации?
P.S. Есть подозрения что можно сделать с помощью флага, но после шаманства ничего не вышло. Понимаю что можно сделать к примеру кидая на phpшный файл, и оттуда с редиректить. Но хочется найти решение на чистом htaccess.
  • Вопрос задан
  • 378 просмотров
Пригласить эксперта
Ответы на вопрос 1
@ShamblerR
RewriteCond %{QUERY_STRING} ^id=1&bla=2&blabla=3$
RewriteCond %{REQUEST_FILENAME} !mychpu$
RewriteRule ^.*$ http://site.com/mychpu [R=301,L]

Видимо для отключения цикличности вам нужно ее отключить ;)
Вообще вы не написсали что именно у вас в цикле, Просто не забывайте что вам нужно будет исключить в дополнительном RewriteCond результат первого цикла.
Ответ написан
Ваш ответ на вопрос

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

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