Перенаправление URL (URL redirection)

Перенаправление URL (англ. URL redirection, URL forwarding, domain redirection, domain forwarding) — техника, применяемая для того, чтобы веб-страница была доступна под несколькими URL.

Слово редирект применяется в значениях:

  • переадресация
  • автоматическое (принудительное) перенаправление пользователя с одного веб-адреса на другую

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

Это абзац о склеивании сайтов, а не о настройке перенаправления с http на https!!

Если вы выбирали современного регистратора доменных имен, тогда вы можете использовать функцию URL Redirect Record в настройках DNS для создания 301, 302 ответа и не заморачиваться с настройкой редиректов. Ниже таблица какой сайт будет индексироваться при применении URL Redirect Record.

P.S. Для тех кто любит разбираться, сервис URL Redirect Record - это не функция DNS, это сам хостинг провайдер создает сайт и редиректит.

Сервис проверки HTTP заголовков сайта HTTP Status Codes Checker.

Перенаправление HTTP запросов на HTTPS

Если вы хотите запретить использование HTTP, то самым разумным будет перенаправлять все HTTP запросы к страницам на их HTTPS адрес. Чтобы добиться этого в Apache можно, например, организовать перенаправление с помощью mod_rewrite. Для этого сначала необходимо его активировать:

sudo a2enmod rewrite
sudo service apache2 restart

Затем изменить файл /etc/apache2/sites-enabled/000-default, отвечающий за виртуальный хост по умолчанию для HTTP запросов. В этот файл надо добавить внутрь блока

<VirtualHost *:80>
...
</VirtualHost>

строчки:

RewriteEngine On
RewriteCond %{HTTPS} =off 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [END,QSA,R=permanent]

При этом все настройки директорий можно удалить, поскольку по HTTP на ваши сайты всё равно будет не попасть. Всё, теперь ещё раз перезапустите Apache и убедитесь, что при заходе по HTTP вы автоматически перенаправляетесь на HTTPS страницу.

301 редирект: с WWW на без WWW и наоборот в Apache

  • С www на домен без WWW
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^www.example.org$ [NC]
    RewriteRule ^(.*)$ http://example.org/$1 [R=301,L]

    Если все работает в Server Response должен прийти ответ(заголовок) Коды состояния HTTP. Методы и структура протокола HTTP

    HTTP/1.1 301 Moved Permanently

    на запрос домена с www.

  • С домена на домен с WWW
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^example.org
    RewriteRule (.*) http://www.example.org/$1 [R=301,L]

Apache глобальное перенаправление (редирект)

  • Глобальное перенаправление (редирект) на другой адрес:
    Redirect / http://www.newsite.ru

    или

    Redirect 301 / https://www.newsite.ru
  • Перенаправление (редирект) только при запросе определенных страниц:
    Redirect 301 /company http://www.newsite.com/newcompany
    Redirect 301 /forum http://www.newsite.com/newforum

    При запросе страниц из каталогов company и forum будет произведено перенаправление на новые адреса.

В ряде случаем полезно использовать такой редирект В ряде случаев полезна переадресация через

RewriteRule ^dir /dir-new/$1 [R=301,L]

вместо директивы Redirect

HTML редирект или метаредирект

HTML редирект – это соответствующий мета-тег с некоторыми параметрами и значениями. Синтаксис

<meta http-equiv="refresh" content="seconds;URL-to-redirect">

Мета-тег с редиректом прописывается в секции <head> </head>. Параметр content="" со значением 1 определяет перенаправление через 1 секунду и т.п. После URL= вводится адрес перенаправления с текущей страницы.

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

index.php
<html>
 
<head>
<meta name="robots" content="noindex, nofollow">
<meta http-equiv="refresh" content="0;url=https://wiki.dieg.info"/>
 
</head>
<body>
</body>
</html>
index.php
<html>
 
<head>
<meta name="robots" content="noindex, nofollow">
<meta http-equiv="refresh" content="0;url=https://wiki.dieg.info"/>
 
</head>
<body>
    <script language="javascript" type="text/javascript">
    document.location='https://wiki.dieg.info';
    </script>
</body>
</html>
PQ VPS сервера в 28+ странах.