Для чего нужно прописывать редирект 301 Permanent Redirect?
Редирект 301 — это ответ сервера и перенаправление с одного url-адреса на другой.
Кроме простого, автоматического перенаправления пользователя или поисковой системы со старого адреса страницы на новый, ответ 301 укажет поисковым системам, что страница была перемещена на другой адрес и старый url можно считать устаревшим. После того, как пройдет переиндексация, поисковые системы «склеят» их и будут выдавать пользователям новый.
Но проблема в том, что мне нужно было переадресовать адрес с www и без www на новый https:// адрес без www.
Стандартная запись Rewrite для .htaccess выглядит как-то так:
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Либо так:
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteRule ^ https://site.com.ua%{REQUEST_URI} [R=301,L,NE]
Где первой строкой мы объявляем о редиректе, RewriteCond – это условие, а RewriteRule правило.
Нельзя допускать двух и более редиректов, это вызывает лишнюю нагрузку и замедляет выдачу сайта пользователю и поисковикам.
Для хостинга ukraine.com.ua у меня упорно не работал редирект на https:// и мы коллективно выяснили, что директива RewriteCond %{HTTPS} off не отрабатывает у этого хостера.
Обращение в тех.поддержку компании дало результат, нам указали на свою директиву: RewriteCond %{HTTP:SSL} !=1
И наша запись для редиректа в .htaccess теперь выглядит так:
RewriteEngine On
RewriteCond %{HTTP:SSL} !=1 [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteRule ^(.*)$ https://site.com.ua%{REQUEST_URI} [L,R=301]
А проверить правильность работы и отсутствие цикличности можно например на этом сайте: bertal.ru
Отправить ответ