Как сделать редирект. Все виды.

Типы редиректов

Есть несколько типов редиректов, рассмотрите каждый из них в кратце, чтобы определить какой из них вам больше подходит.

Редирект через htaccess — самый популярный, и довольно простой способ. Чтобы его сделать, вам понадобится создать в папке сайта файл с названием .htaccess (обратите внимание, что название файла начинается с точки, это не опечатка). Если вы используете CMS WordPress или Joomla, то скорее всего этот файл у вас уже есть, в этом случае вам нужно будет просто отредактировать его.
Читайте ниже чтобы узнать какие именно инструкции в нем нужно прописать, чтобы создать перенаправление.

Редирект при помощи PHP — подойдет в том случае, если вы разбираетесь в PHP и знаете структуру своего сайта. Этот вариант подойдет вам, если ваш сайт написан не на CMS. В ином случае лучше используйте редирект через htaccess.

Редирект HTML — если у вас простой HTML сайт и вам нужно сделать перенаправление для одной страницы — это самый простой вариант. Сделать перенаправление для всего сайта этим способом будет трудозатратно, особенно если у вас на сайте больше 10 страниц.

Редирект при помощи JavaScript — этот способ подойдет также в том случае, если у вас простой сайт, либо если нужно сделать редирект для одной — двух страниц, либо для всего сайта в целом.

 

Редирект при помощи .htaccess файла

Инструкции, которые вы увидите ниже, нужно прописать в файл .htaccess в самое начало.

  1. Редирект всего сайта (всех страниц) на другой сайт
    Redirect / https://new-site.ru/

    В этом примере, перенаправление будет происходить на сайт new-site.ru

  2. Редирект одной страницы на другую
    Redirect /page-1.html /page-2.html

    В этом примере, перенаправление будет происходить со страницы page-1.html на страницу page-2.html. Обе страницы должны располагаться на одном домене.
    Этот вариант подходит для замены старых страниц сайта на новые.

  3. 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.

  4. 310 редирект с одной страницы на другую
    Redirect 301 /blog/page-1.html https://example.com/page-2.htm

    В этом примере, посетители будут перенаправляться со страницы blog/page-1.htmlна example.com/page-2.htm.

  5. Редирект ошибки 404
    ErrorDocument 404 /index.html

    Пропишите эту строку в .htaccess файле, и тогда все посетители, которым встретится ошибка 404, будут перенаправлены на index.html.

  6. Редирект с 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 и до отправки кук.

  1. Редирект на другой сайт
    <? header(" Location: https://example.com "); ?>

    В этом примере, перенаправление будет происходить на сайт https://example.com

  2. Редирект на страницу другого сайта
    <? header(" Location: https://example.com/page.html "); ?>

    Здесь перенаправление будет происходить на https://example.com/page.html

  3. Редирект определенной страницы на страницу другого сайта
    <?
    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.

  1. Редирект на другой сайт
    <meta http-equiv="refresh" content="5;https://yutex.ru">

    В этом примере, перенаправление будет происходить на сайт https://yutex.ru с задержкой в 5 секунд. Если установить значение задержки вместо 5 в 0, то посетитель будет перенаправляться на другой сайт моментально.

  2. Редирект на страницу другого сайта
    <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>
  1. Редирект на другой сайт
    <script type="text/javascript">
    location="https://yandex.ru";
    </script>

    Перенаправление сработает на сайт yandex.ru.

  2. Редирект на другой сайт с задержкой
    <script type="text/javascript">
    setTimeout(function(){
    location="https://yandex.ru";
    }, 5000);
    </script>

    Этот код делает то же самое что и предыдущий, но с задержкой в 5 секунд.

  3. Вариант для jQuery
    <script type="text/javascript">
    $(location).attr('href',"https://example.com");
    </script>

    Замените example.com на свой домен, на который нужно перенаправить посетителя.

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
× iOs app

To install this Web App in your iPhone/iPad press iOs sourse and then Add to Home Screen.