Страница 1 из 1

Переадресация 301 / редирект через .htaccess на все случаи жизни

Добавлено: 30 мар 2023, 00:59
admin
Проверил недавно свой сайт через Rocket Tools и обнаружил, что когда меняли сайт, то "успешно" посеяли в том числе и редиректы на https и www. Но также узнал про некоторые редиректы, которых не было и до этого, а они нужны.

К примеру, я честно не знал, что надо смотреть, как отзывается сайт, если указать не ошибочную страницу (тогда открывается страница для ошибки 404), а один или несколько лишних слешей. А для этого делается свой редирект:

RewriteCond %{THE_REQUEST} //
RewriteRule .* /$0 [R=301,L]

Допускаю, что многие это знают. Но уверен, что также полно и тех, кто этого не знал, как и я. Вот такие случаи я постараюсь здесь описывать, так как сам не с ходу нашел решение в поиске. Причем сомневаешься, а верно ли кто-то советует, чтобы не навредить сайту и поисковой выдаче. Приведенный вариант 100% рабочий.

Re: Переадресация 301 / редирект через .htaccess на все случаи жизни

Добавлено: 30 мар 2023, 01:24
admin
А вот редиректы, которые я добавил у себя, и скорее всего которые понадобятся любому:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ https://www.site.ru/ [R=301,L]

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

RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

RewriteCond %{THE_REQUEST} //
RewriteRule .* /$0 [R=301,L]

Вместо site укажите свой домен. И убедитесь, что перед всеми редиректами есть RewriteEngine On

Re: Переадресация 301 / редирект через .htaccess на все случаи жизни

Добавлено: 11 мар 2024, 13:17
admin
Сейчас везде использую такой редирект:

RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

От предыдущих вариантов отказался по причине зацикливания на хостинге, из-за чего сайт не открывался вовсе.