@Ysery

Отсечение всего (исключая пару "хвостиков") после .html через htaccess?

Доброго времени суток, специалисты.

Есть вот такая строчка

RewriteRule ^(.+?)\.html(?!/amp/).+$ https://%{HTTP_HOST}/$1.html [L,R=301]


Она отсекает дополнительные символы после .html (исключая .html/amp/). Но не отсекает запросы такого вида .html?<тут может быть что угодно>

Как она должна выглядеть, дабы отсекались и "хвосты" с вопросительным знаком, а исключение расширить к имеющемуся /amp/ ещё и .html?srek=... и ещё .html?srp=...
  • Вопрос задан
  • 41 просмотр
Пригласить эксперта
Ответы на вопрос 1
shambler81
@shambler81 Куратор тега htaccess
GET не является частью урла и RewriteRule не может с ним работать.
В вашем случае если вам нужно удалить гет парметры вообще то можно сделать так
RewriteRule ^(.+?)\.html(?!/amp/).+$ https://%{HTTP_HOST}/$1.html? [L,R=301]

вопрос в конце строки удалит гет параметры
если же вам нужно работать с ними то вот пример как это делать
# 301 --- http://www.test3.com/faq.html?faq=13&layout=bob => bbq.html
RewriteCond %{QUERY_STRING} (^|&)faq\=13($|&)
RewriteCond %{QUERY_STRING} (^|&)layout\=bob($|&)
RewriteRule ^faq\.html$ /bbq.html? [L,R=301]

(^|&) и ($|&) - всего лишль для того что второй параметр начинается не со знака вопроса
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы