ОБЩАЯ ИНФОРМАЦИЯ
Перенаправление (редирект) – это переадресация пользователя сайта на другой URL, согласно заданному правилу. Его можно задать как в рамках одного веб-ресурса – со страницы на страницу, так и на другой сайт.
Переадресация чаще всего используется:
при переезде с одного домена на другой;
при переносе части содержимого одного сайта на другой;
после подключения SSL сертификата (переадресация пользователей с http:// на https://);
при переносе данных с поддомена на домен или наоборот;
для перенаправления посетителей с www на без www или наоборот;
для защиты от подмены домена.
Редирект (например, с домена на домен) можно настроить четырьмя способами: через файл .htaccess, PHP, HTML и JavaScript. Правила для .htaccess универсальные для любого хостинга с веб сервером Apache. Если перенаправление не срабатывает, значит сервер хостинга настроен некорректно.
Каждое правило для настройки перенаправления домена, прописывается в начало файла .htaccess, расположенного в корневой директории сайта.
ПЕРЕНАПРАВЛЕНИЕ НА WWW
Используется, когда сайт надо перевести на адрес с www (был http://test.ru , будет http://www.test.ru ):
RewriteEngine On RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteRule ^(.*)$ %{REQUEST_SCHEME}://www.%{HTTP_HOST}/$1 [R=301,L]
ПЕРЕНАПРАВЛЕНИЕ С WWW НА БЕЗ WWW
Используется для перенаправления пользователей с поддомена www на адрес без www (был http://www.test.ru , будет http://test.ru ):
RewriteEngine On RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] RewriteRule ^(.*)$ %{REQUEST_SCHEME}://%1/$1 [R=301,L]
ПЕРЕНАПРАВЛЕНИЕ С HTTP НА HTTPS
Используется после установки SSL сертификата для перенаправления всех пользователей на защищенное https:// соединение.
RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
ПЕРЕНАПРАВЛЕНИЕ С HTTPS НА HTTP
Правила используется в тех случаях, когда доступ к сайту должен быть без защищенного соединения по http:// (стоит отметить, что при отсутствии установленного SSL сертификата, работать не будет).
RewriteEngine On RewriteCond %{HTTPS} on RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
ПЕРЕНАПРАВЛЕНИЕ НА ДРУГОЙ ДОМЕН
Редирект используется при переезде с одного домена на другой (замените http://newtest.ru на новый адрес сайта):
RewriteEngine On RewriteRule ^(.*)$ %{REQUEST_SCHEME}://new.ru/$1 [R=301,L]
ПЕРЕНАПРАВЛЕНИЕ С ОДНОЙ СТРАНИЦЫ НА ДРУГУЮ
Редирект может использоваться как в рамках одного сайта, так и для перенаправления страницы с одного сайта на другой.
Redirect 301 /stranica https://test.ru/stranica/ Redirect 301 /category/stranica https://test.ru/stranica/
Правило применимо для любого количества страниц (для каждой пишется с новой строки), прописывается в .htaccess исходного сайта без указания доменного имени.
ОТКРЫТИЕ ДОМЕНА ТОЛЬКО ЧЕРЕЗ ОСНОВНОЙ АДРЕС
Бывает, что на один сайт направлено множество доменов (иногда так задумано, например, в случае склейки доменов, а иногда это делают злоумышленники, направляя домены на чей-то сервер). Чтобы сайт открывался только по основному адресу, можно использовать следующее правило:
RewriteEngine On RewriteCond %{HTTP_HOST} !^test.ru$ [NC] RewriteRule ^(.*)$ %{REQUEST_SCHEME}://test.ru/$1 [R=301,L]
Прописывается правило в файл .htaccess основного домена (в нашем примере это http://test.ru ). Если сайт запросить по любому другому адресу, веб-сервер выполнит перенаправление на основной адрес.
Статья помогла?
Отлично!
Спасибо за ваш отзыв
Извините, что не удалось помочь!
Спасибо за ваш отзыв
Комментарий отправлен
Мы ценим вашу помощь и постараемся исправить статью