@shortcode

Как сделать одинарный 301 редирект через htaccess?

Для редиректа с www и http на https, я использую в .htaccess код:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^www.site\.ru$ [NC]
RewriteRule ^(.*)$ https://site.ru/$1 [R=301,L]
</IfModule>


Возникла необходимость добавить в файл редиркет со всех страниц на главную. Сработало такое решение:

RewriteCond %{REQUEST_URI} !"^/$"
RewriteRule (.+) https://%{HTTP_HOST}/ [R=301,L]


Но если добавить его в .htaccess, то редиректы со всех страниц с www на главную получаются двойными. То есть https://www.site.ru/fghdgsdf ведет на https://site.ru/fghdgsdf, а уже потом на https://site.ru/.

Как сделать редирект с www в один шаг?
  • Вопрос задан
  • 39 просмотров
Пригласить эксперта
Ответы на вопрос 1
wisgest
@wisgest
Не ИТ-специалист. Рабочий. Шизоидный психопат.
редиректы со всех страниц с www на главную получаются двойными.

В этом нет ничего страшного.

Можно сделать перенаправление, если запрос не совпадает с пустым, или Host совпадает с именем домена c www:
RewriteCond %{REQUEST_URI} !=/ [OR]
RewriteCond %{HTTP_HOST} =www.example.com [NC]
RewriteRule "" http://example.com/

(сам не проверял).
Ответ написан
Ваш ответ на вопрос

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

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