Настройка перенаправлений

Изменено Sat, 11 May 2024 на 06:53 PM

ОБЩАЯ ИНФОРМАЦИЯ

Перенаправление (редирект) – это переадресация пользователя сайта на другой 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 ). Если сайт запросить по любому другому адресу, веб-сервер выполнит перенаправление на основной адрес.

Статья помогла?

Отлично!

Спасибо за ваш отзыв

Извините, что не удалось помочь!

Спасибо за ваш отзыв

Расскажите, как мы можем улучшить эту статью!

Выберите хотя бы одну причину
Требуется проверка CAPTCHA.

Комментарий отправлен

Мы ценим вашу помощь и постараемся исправить статью