Различия

Показаны различия между двумя версиями страницы.


Предыдущая версия
url_redirection [2025/07/06 12:40] (текущий) – внешнее изменение 127.0.0.1
Строка 1: Строка 1:
 +====== Перенаправление URL (URL redirection) ======
 +
 +~~Title: Apache настройка редиректов (переадресация)  ~~
 +{{htmlmetatags>
 +metatag-description=(Инструкция по созданию редиректов на веб-сервере Apache. 🔃 Примеры настройки и использование 301 редиректа )
 +}}
 +
 +
 +**Перенаправление URL** (англ. URL redirection, URL forwarding, domain redirection, domain forwarding) — техника, применяемая для того, чтобы веб-страница была доступна под несколькими URL.
 +
 +Слово **редирект** применяется в значениях:
 +  * переадресация
 +  * автоматическое (принудительное) перенаправление пользователя с одного веб-адреса на другую
 +
 +<alert type="warning">**Для SEO: если вы настроили 301 редирект - его длительность вечность! Помним это!**</alert>
 +====== SEO простое склеивание сайтов и редирект ======
 +**Это абзац о склеивании сайтов, а не о настройке перенаправления с http на https!!** 
 +
 +Если вы выбирали [[https://dieg.info/review-category/domain-registrars/|современного регистратора доменных имен]], тогда вы можете использовать функцию URL Redirect Record в настройках DNS для создания 301, 302 ответа и не заморачиваться с настройкой редиректов. Ниже таблица какой сайт будет индексироваться при применении URL Redirect Record.
 +{{ ::url_redirect_record.jpg?nolink&600 |}}
 +
 +P.S. Для тех кто любит разбираться, [[https://namecheap.pxf.io/46Q2G|сервис URL Redirect Record]] - это не функция [[DNS|DNS]], это сам хостинг провайдер создает сайт и редиректит.
 +
 +Сервис проверки HTTP заголовков сайта [[https://dieg.dev/http-status-codes-checker/|HTTP Status Codes Checker]].
 +====== Перенаправление HTTP запросов на HTTPS ======
 +
 +Если вы хотите запретить использование HTTP, то самым разумным будет перенаправлять все HTTP запросы к страницам на их HTTPS адрес. Чтобы добиться этого в [[Apache]] можно, например, организовать перенаправление с помощью mod_rewrite. Для этого сначала необходимо его активировать:
 +<file>
 +sudo a2enmod rewrite
 +sudo service apache2 restart
 +</file>
 +Затем изменить файл /etc/apache2/sites-enabled/000-default, отвечающий за виртуальный хост по умолчанию для HTTP запросов. В этот файл надо добавить внутрь блока
 +<file>
 +<VirtualHost *:80>
 +...
 +</VirtualHost>
 +</file>
 +строчки:
 +<file php>
 +RewriteEngine On
 +RewriteCond %{HTTPS} =off 
 +RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [END,QSA,R=permanent]
 +</file>
 +При этом все настройки директорий можно удалить, поскольку по HTTP на ваши сайты всё равно будет не попасть.
 +Всё, теперь ещё раз перезапустите Apache и убедитесь, что при заходе по HTTP вы автоматически перенаправляетесь на HTTPS страницу.
 +  * [[htaccess|.htaccess]]
 +  * [[redirekty_nginx]]
 +
 +====== 301 редирект: с WWW на без WWW и наоборот в Apache ======
 +
 +  * С www на домен без WWW<file>
 +RewriteEngine On
 +RewriteCond %{HTTP_HOST} ^www.example.org$ [NC]
 +RewriteRule ^(.*)$ http://example.org/$1 [R=301,L]
 +</file>Если все работает в Server Response должен прийти ответ(заголовок) [[HTTP]]<file>
 +HTTP/1.1 301 Moved Permanently
 +</file>на запрос домена с www.
 +  * С домена на домен с WWW<file>
 +RewriteEngine On
 +RewriteCond %{HTTP_HOST} ^example.org
 +RewriteRule (.*) http://www.example.org/$1 [R=301,L]
 +</file>
 +
 +====== Apache глобальное перенаправление (редирект) ======
 +
 +  * Глобальное перенаправление (редирект) на другой адрес:<file>
 +Redirect / http://www.newsite.ru
 +</file>или<file>
 +Redirect 301 / https://www.newsite.ru
 +</file>
 +  * Перенаправление (редирект) только при запросе определенных страниц:<file>
 +Redirect 301 /company http://www.newsite.com/newcompany
 +Redirect 301 /forum http://www.newsite.com/newforum
 +</file>При запросе страниц из каталогов company и forum будет произведено перенаправление на новые адреса.
 +
 +<panel type="warning">В ряде случаем полезно использовать такой редирект В ряде случаев полезна переадресация через 
 +<file>
 +RewriteRule ^dir /dir-new/$1 [R=301,L]
 +</file> вместо директивы Redirect</panel>
 +
 +
 +====== HTML редирект или метаредирект ======
 +HTML редирект – это соответствующий мета-тег с некоторыми параметрами и значениями. Синтаксис <file html>
 +<meta http-equiv="refresh" content="seconds;URL-to-redirect">
 +</file>
 +
 +Мета-тег с редиректом прописывается в секции <head> </head>. Параметр content="" со значением 1 определяет перенаправление через 1 секунду и т.п. После URL= вводится адрес перенаправления с текущей страницы.
 +
 +Рабочий пример метаредиректа. Посетитель не заметит что произошло перенаправление, так как мы установим для этого задержку в ноль секунд.<file html 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>
 +</file>
 +===== Пример Javascript  редирект через document.location и метаредиректа =====
 +
 +<file 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>
 +</file>
 +<panel type="success" title="Читайте также">
 +  * Сервис проверки HTTP заголовков сайта [[https://dieg.dev/http-status-codes-checker/|HTTP Status Codes Checker]].
 +  * [[curl]]
 +  * [[cpanel_whm_redirect_http_to_https]]
 +  * [[hsts]]
 +  * [[redirekty_nginx]]
 +</panel>
  

📌 Удобный подбор VPS по параметрам доступен на DIEGfinder.com - официальном инструменте проекта DIEG. Это часть единой экосистемы, созданной для того, чтобы помочь быстро найти подходящий VPS/VDS сервер для любых задач хостинга.

📌 Для тестирования скриптов, установщиков VPN и Python-ботов рекомендуем использовать надежные VPS на короткий срок. Подробнее о быстрой аренде VPS для экспериментов - читайте здесь.

💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!