@IvanIF

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

Есть сайт с реализованным чпу (покажу на примере одной страницы).
Вот реализация чпу на одной из страниц:

AddDefaultCharset UTF-8
Options +FollowSymLinks
RewriteEngine On

RewriteRule ^news/(sport)$ /pages/news.php?type=sport [L]


т.е страница доступна по адресу example.com/news/sport

Недавно занялся удалением дублей страниц при помощи 301 редиректа. Вот пример моего редиректа с www на без www:

RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]


Так вот, проблема в том, что при переходе по ссылке:
www.example.com/news/sport в теории я должен перейти на страницу
example.com/news/sport (без www) а в итоге я перехожу на страницу
example.com/pages/news.php?type=sport (почему-то тут нет чпу)

Все ЧПУ сбрасываются!!! В чём дело? Как исправить???
  • Вопрос задан
  • 45 просмотров
Решения вопроса 1
@dodo512
301-й редирект поставить выше RewriteRule ^news/(sport)$ /pages/news.php

RewriteEngine On

RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

RewriteRule ^news/(sport)$ /pages/news.php?type=sport [L]
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@artsiom1976
редирект с www на без www с учётом https
RewriteEngine on
RewriteCond %{HTTPS}_%{HTTP_HOST} ^(?|off_(?:www\.)?(.*)|on_www\.(.*)) [NC]
RewriteRule .* https://%1/$0 [R=301,L]
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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