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