Типы редиректов
Есть несколько типов редиректов, рассмотрите каждый из них в кратце, чтобы определить какой из них вам больше подходит.
Редирект через htaccess — самый популярный, и довольно простой способ. Чтобы его сделать, вам понадобится создать в папке сайта файл с названием .htaccess (обратите внимание, что название файла начинается с точки, это не опечатка). Если вы используете CMS WordPress или Joomla, то скорее всего этот файл у вас уже есть, в этом случае вам нужно будет просто отредактировать его.
Читайте ниже чтобы узнать какие именно инструкции в нем нужно прописать, чтобы создать перенаправление.
Редирект при помощи PHP — подойдет в том случае, если вы разбираетесь в PHP и знаете структуру своего сайта. Этот вариант подойдет вам, если ваш сайт написан не на CMS. В ином случае лучше используйте редирект через htaccess.
Редирект HTML — если у вас простой HTML сайт и вам нужно сделать перенаправление для одной страницы — это самый простой вариант. Сделать перенаправление для всего сайта этим способом будет трудозатратно, особенно если у вас на сайте больше 10 страниц.
Редирект при помощи JavaScript — этот способ подойдет также в том случае, если у вас простой сайт, либо если нужно сделать редирект для одной — двух страниц, либо для всего сайта в целом.
Редирект при помощи .htaccess файла
Инструкции, которые вы увидите ниже, нужно прописать в файл .htaccess в самое начало.
- Редирект всего сайта (всех страниц) на другой сайт
Redirect / https://new-site.ru/
В этом примере, перенаправление будет происходить на сайт new-site.ru
- Редирект одной страницы на другую
Redirect /page-1.html /page-2.html
В этом примере, перенаправление будет происходить со страницы page-1.html на страницу page-2.html. Обе страницы должны располагаться на одном домене.
Этот вариант подходит для замены старых страниц сайта на новые. - 310 редирект с www на без www
RewriteEngine on RewriteCond %{HTTP_HOST} ^www.example\.ru [NC] RewriteRule ^(.*)$ https://example.ru/$1 [R=301,L]
В этом примере, посетители будут перенаправляться с https://www.example.ru на https://example.ru.
- 310 редирект с одной страницы на другую
Redirect 301 /blog/page-1.html https://example.com/page-2.htm
В этом примере, посетители будут перенаправляться со страницы blog/page-1.htmlна example.com/page-2.htm.
- Редирект ошибки 404
ErrorDocument 404 /index.html
Пропишите эту строку в .htaccess файле, и тогда все посетители, которым встретится ошибка 404, будут перенаправлены на index.html.
- Редирект с HTTP на HTTPS
RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
Пропишите эту строку в .htaccess файле, и тогда все посетители вошедшие на сайт по протоколу HTTP будут перенаправляться на защищенный протокол HTTPS.
Если вы прописываете редирект для WordPress, то обратите внимание на то, что в файле уже есть строка RewriteEngine On. Поэтому сразу под ней вам нужно добавить такие строки
RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://www.domain.com/$1 [R,L]
PHP редирект
В PHP редирект делается так: сервер отправляет заголовки headers браузеру посетителя, и тот переходит по нужному адресу автоматически.
Стоит отметить важный момент, отправлять заголовки можно только до вывода другой информации. То есть они должны отправляться до вывода любой другой информации через echo и до отправки кук.
- Редирект на другой сайт
<? header(" Location: https://example.com "); ?>
В этом примере, перенаправление будет происходить на сайт https://example.com
- Редирект на страницу другого сайта
<? header(" Location: https://example.com/page.html "); ?>
Здесь перенаправление будет происходить на https://example.com/page.html
- Редирект определенной страницы на страницу другого сайта
<? if( $_SERVER['REQUEST_URI'] === 'blog/post-1.html' ){ header(" Location: https://example.com/page.html "); } ?>
Здесь если посетитель сайта зайдет на страницу blog/post-1.html то он будет перенаправлен на https://example.com/page.html
HTML редирект
Чтобы сделать редирект через HTML, нужно добавить на каждую страницу где он планируется специальный мета тег. Мета тег прописывается внутри тега <head>.
На больших сайтах этот метод не удобен, и рекомендуется использовать редирект через htaccess.
- Редирект на другой сайт
<meta http-equiv="refresh" content="5;https://yutex.ru">
В этом примере, перенаправление будет происходить на сайт https://yutex.ru с задержкой в 5 секунд. Если установить значение задержки вместо 5 в 0, то посетитель будет перенаправляться на другой сайт моментально.
- Редирект на страницу другого сайта
<meta http-equiv="refresh" content="0;https://yutex.ru/index.html">
Здесь перенаправление будет происходить на https://yutex.ru/index.html и без задержек.
JavaScript редирект
Этот вид перенаправления удобен тем, что его код можно прописать в одном файле (в отличие от html метода), и этот файл вставить на каждой странице прописав
<script type="text/javascript" src="redirect.js"></script>
- Редирект на другой сайт
<script type="text/javascript"> location="https://yandex.ru"; </script>
Перенаправление сработает на сайт yandex.ru.
- Редирект на другой сайт с задержкой
<script type="text/javascript"> setTimeout(function(){ location="https://yandex.ru"; }, 5000); </script>
Этот код делает то же самое что и предыдущий, но с задержкой в 5 секунд.
- Вариант для jQuery
<script type="text/javascript"> $(location).attr('href',"https://example.com"); </script>
Замените example.com на свой домен, на который нужно перенаправить посетителя.