Редирект — это перенаправление пользователя с одного URL на другой. Настроить его можно разными способами:
О последнем способе мы расскажем в статье. Какими бывают редиректы
Какими бывают редиректыСуществуют разные типы перенаправлений с кодом 3хх. Наиболее популярные из них:
301 редирект (301 redirect) — это постоянный тип перенаправления. Он указывает на то, что искомая страница окончательно перемещена в другое место. Рекомендуем использовать 301 редирект, если вы перенесли содержимое на другую страницу и хотите перенаправить трафик. Когда подойдет редирект через htaccess.htaccess — это конфигурационный файл веб-сервера Apache, который позволяет управлять настройками веб-ресурса. Он находится в корневой директории сайта. Главная особенность .htaccess — возможность не только настроить редирект на другой сайт, но и перенаправить отдельные страницы.
Как сделать 301 редирект через htaccessВажно: если вы используете кириллический домен, его нужно указывать в формате Punycode. .htaccess-редирект с одного домена на другойПерейдите в директорию домена, с которого нужно настроить редирект. В файл .htaccess добавьте строки: RewriteEngine On
RewriteCond %{HTTP_HOST} old-domain.ru RewriteRule (.*) http://new-domain.ru/$1 [R=301,L] Где:
Если вы хотите настроить 301 редирект со страницы на страницу, укажите ее в директиве. Например: RewriteEngine On
RewriteCond %{HTTP_HOST} old-domain.ru/contacts RewriteRule (.*) http://new-domain.ru/contacts/$1 [R=301,L] Где:
.htaccess-редирект на домен с WWW и без WWWПерейдите в директорию сайта и откройте файл .htaccess. Для перенаправления на домен с WWW добавьте строки: RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.domain.ru$ [NC] RewriteRule ^(.*)$ http://domain.ru/$1 [R=301,L] Вместо domain.ru укажите доменное имя вашего сайта. RewriteEngine On
RewriteCond %{HTTP_HOST} ^domain.ru RewriteRule (.*) http://www.domain.ru/$1 [R=301,L] Вместо domain.ru укажите доменное имя вашего сайта. .htaccess-редирект для отдельного IP-адресаПерейдите в корневую папку сайта. Откройте .htaccess и добавьте строки: RewriteEngine On
RewriteCond %{REMOTE_ADDR} 123.123.123.123 RewriteRule ^(.*)$ http://domain.ru [R=301,L] Где:
.htaccess-редирект на http://Перейдите в корневую папку сайта. Откройте .htaccess и добавьте строки: RewriteEngine On
RewriteCond %{SERVER_PORT} ^443$ [OR] RewriteCond %{HTTPS} =on RewriteRule ^(.*)$ http://domain.ru/$1 [R=301,L] Вместо domain.ru укажите доменное имя вашего сайта. .htaccess-редирект на https://Перейдите в корневую папку сайта. Откройте .htaccess и добавьте строки: RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$ RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L] .htaccess-редирект с главной страницы, кроме остальных страниц сайтаПерейдите в директорию сайта. Откройте .htaccess и добавьте строки: RewriteEngine On
RewriteRule ^$ https://domain.ru [R=301,L] Вместо domain.ru укажите доменное имя вашего сайта. .htaccess-редирект с GET-параметрамиПерейдите в директорию сайта. Откройте .htaccess и добавьте строки: RewriteCond %{REQUEST_URI} /index.php
RewriteRule ^(.*)$ http://domain.ru/ [R=301,L] Вместо domain.ru укажите доменное имя вашего сайта. .htaccess-редирект с массовой склейкойПерейдите в директорию сайта и откройте .htaccess. Чтобы настроить перенаправление всех страниц на основной домен, добавьте строки: RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.(php|html|htm)\ HTTP/
RewriteRule ^(.*)index\.(php|html|htm)$ http://domain.ru/$1 [R=301,L] Вместо domain.ru укажите доменное имя вашего сайта. Редирект с одной страницы на другуюПереадресация позволяет направлять посетителя на файл new.html когда он запрашивает файл old.html. Чтобы увидеть этот пример на практике, достаточно добавить следующую строку в файл .htaccess, расположенный в папке сайта. Строка должна быть введена как одна строка без переносов: Redirect /directoryname/old.html http://yourdomainname/directoryname/new.html
|