- Перенаправления с помощью .htaccess, PHP, HTML и JavaScript
- Перенаправление доменов сайта
- Типы редиректов
- Серверные редиректы
- Перенаправление через .htaccess
- .htaccess перенаправление из подкаталога на другой URL
- Перенаправления с помощью PHP
- Клиентские редиректы
- Переадресация с помощью HTML метатега refresh
- Переадресация с помощью JavaScript
- Как сделать редирект на HTML
- Что такое редирект
- Для чего используют редирект
- Что такое HTML-редирект
Перенаправления с помощью .htaccess, PHP, HTML и JavaScript
HTML redirect играют важную роль для масштабных веб-проектов. Возможность переадресации трафика с одного сайта на другой помогает лучше управлять потоками посетителей и выполнять реструктуризацию ресурса.
С помощью редиректов пользователи могут отправлять сообщения с одинаковым содержанием на разных доменах, не позволяя их классифицировать как дублированный контент. Кроме этого перенаправления доменов являются эффективными способом для поисковой оптимизации.
Редиректы выполняются с помощью .htaccess , PHP скрипт , HTML мета-тегов и JavaScript .
Перенаправление доменов сайта
Редиректы используются для информирования серверов о том, что контент сайта был перенесен с одного URL-адреса на другой. Делать это необходимо, когда исходный веб-адрес ( цель входящей ссылки ) занимает высокие позиции в выдаче поисковых систем ( SERP ). В этом случае редирект сообщает поисковому роботу, что нужный контент был перенесен, предоставляя пользователю ссылку на новый адрес.
Без таких переадресаций веб-мастера столкнулись бы со страницей ошибки 404 вместо искомого сайта. Это то, чего коммерческие ресурсы особенно стремятся избежать. Онлайн-магазины предлагают постоянно меняющийся ассортимент товара, который отображается на многих страницах. Как только товар перестает продаваться, потенциальных клиентов перенаправляют на страницу с аналогичным продуктом. Это позволяет более эффективно управлять потоком посетителей, а также уменьшить показатель отказов.
Кроме этого перенаправление позволяет одинаковому контенту быть доступным по различным веб-адресам. Все альтернативные адреса перенаправляются в сторону приоритетного домена сайта:
Типы редиректов
Различают клиентские и серверные HTML meta redirect . В случае с серверными перенаправлениями происходит передача кодов состояния HTTP пользовательским агентам ( браузерам и поисковым роботам ).
Когда дело доходит до перенаправлений на стороне клиента, все выглядит по-другому: они выполняются без какого-либо ответа, и никакие коды состояний не передаются. Именно поэтому не все системы поддерживают редирект. Это может привести к ситуациям, когда посетители остаются на оригинальном сайте и не перенаправляются на новую страницу.
Такие недостатки делают использование серверных редиректов более предпочтительным. Поэтому клиентские решения должны применяться только тогда, когда перенаправления домена на стороне сервера невозможно из-за технических препятствий.
Серверные редиректы
В большинстве случаев серверные перенаправления домена выполняются через конфигурационный файл .htaccess или PHP скрипт . Преимущество этих методов состоит в том, что можно индивидуально определить, какой код состояния HTTP должен быть выведен на экран пользовательскому агенту. Это позволяет веб-мастерам помечать перенаправления, как постоянные или временные.
Ниже приведены актуальные коды состояния HTTP 301 и 302 :
- redirect 301 HTML – перемещен навсегда: запрашиваемый ресурс теперь постоянно доступен по новому URL . Старый URL с этого момента становится недействительным;
- 302 – перемещен временно: запрашиваемый ресурс доступен по новому URL . При этом исходный URL по-прежнему сохраняет свою актуальность.
Если код состояния HTTP не определен явно, сервер передает код состояния 302 во время редиректа. Это не всегда необходимо и рекомендуется вручную вводить нужный код состояния при каждой переадресации, так как это позволяет снизить вероятность ошибки индексации, как в ситуации взлома URL . В отличие от редиректа 301 , код состояния 302 сообщает поисковым роботам, что первоначальный URL должен оставаться индексируемым. Предназначенный для постоянной работы адрес редиректа конкурирует с адресом, указанным в индексе поисковой системы.
Перенаправление через .htaccess
.htaccess представляет собой конфигурационный файл на сервере Apache , используемый для перезаписи центральной конфигурации на уровне каталогов. Этот файл позволяет администраторам сайта выполнять специфичные настройки каталога для доменов и их подкаталогов. Одна из функций файла .htaccess включает в себя серверные перенаправления отдельных адресов на другие URL .
После того, как файл .htaccess со следующим кодом помещается в основные каталоги, запросы на исходный домен перенаправляются серверной стороной на домен www.example.com ‘ ‘:
.htaccess перенаправление на новый домен redirect 301 / http://www.example.com/
Строка кода начинается с redirect 301 HTML и определяет код состояния HTTP , который будет передан сервером. Далее следует путь к контенту, который должен быть перенаправлен. В данном случае будет перенаправлено все содержимое. В заключении целевой URL перенаправляется на URL пользовательского агента: ‘http://www.example.com’ .
Этот метод позволяет перенаправить отдельные файлы. Следующий код показывает редирект с одного сайта на другой:
.htaccess перенаправление из подкаталога на другой URL
Вот как выглядит постоянное перенаправление на сервере Apache с активным модулем mod_rewrite :
RewriteEngine On RewriteRule ^directory/example-document.html$ http://www.example.com/example.html [L,R=301]
В первой строке кода модуль mod_rewrite сервера Apache активируется с помощью команды ‘RewriteEngine On’ . После этого указывается » RewriteRule » с путем к файлу перенаправления и адресом назначения. Символы ^ и $ обозначают начало и конец пути, а L означает последнее правило для соответствующего запроса. R = 301 пересылает статус HTTP 301 .
При настройке редиректа с помощью .htaccess ошибочные записи могут серьезно повлиять на работу сайта. Учитывая, что эти изменения вступают в силу сразу после сохранения файла .htaccess , нужно тщательно проверять соответствующие конфигурации.
Перенаправления с помощью PHP
HTML redirect на другую страницу может также быть выполнен PHP скриптом ( например, в index.php ). Следующий код отображает постоянное перенаправление к целевому URL ‘www.example.com’ :
При передаче через PHP скрипт код состояния HTTP определяется с помощью функции » header » во второй строке кода. В этом примере должен быть выполнен постоянный 301 редирект . Учитывая, что серверные перенаправления обычно выполняются на временной основе, то для постоянного редиректа нужно явно указать код состояния 301 . Адрес назначения перенаправления также прописан в ‘ header ‘.
В примере перенаправление происходит на ‘ http://www.example.com ‘. Функция ‘ exit ‘ в четвертой строке кода заканчивает сценарий и препятствует выполнению следующей строки. Чтобы редиректы работали через PHP скрипт, блок кода должен быть расположен в начале HTML страницы. Это препятствует передаче сервером содержимого HTML на страницу перенаправления.
Клиентские редиректы
Если выполнение перенаправления на стороне сервера невозможно по техническим причинам, то можно использовать клиентское решение. Для этого применяется HTML метатег » refresh » и JavaScript . Недостатком перенаправления на стороне клиента является то, что серверы не передают коды состояния HTTP запрашивающим браузерам или поисковым роботам.
Более того, перенаправления на стороне клиента не поддерживаются всеми пользовательскими агентами, а это значит, есть риск того, что не все посетители сайта будут перенаправлены.
Redirect HTML index на стороне клиента оказывают негативное влияние на поисковый индекс. С клиентскими редиректами 301 не происходит явного исключения из индексации через код состояния HTTP . Это может привести к перенаправлению доменов, конкурирующих с доменами назначения, когда речь заходит о поисковых запросах, связанных с рейтингом. В отличие от серверных редиректов, которые остаются невидимыми для пользователей, клиентские всегда сопровождаются задержками.
Переадресация с помощью HTML метатега refresh
HTML перенаправления реализуются через метатеги с атрибутом ‘ http-equiv ’. Для этого нужен простой HTML-файл и соответствующий тег в заголовке для создания перенаправления. Чтобы посетители получали информацию о редиректе, в HTML-документе должно быть установлено соответствующее уведомление: » Пожалуйста, подождите. Вы будете перенаправлены . ‘. Простое перенаправление с помощью refresh выглядит следующим образом:
Клиенту будет предложено перенаправление на новую страницу через метатег http-equiv = «refresh» . То, как это происходит, определяется в атрибуте ‘ content ’. Приведенный выше пример перенаправляет пользователей на домен ‘ www.example.com ‘ через десять секунд.
Переадресация с помощью JavaScript
JavaScript предлагает простую возможность HTML redirect домена на стороне клиента. Но JavaScript поддерживается не всеми браузерами из-за соображений безопасности. Использование данного решения также может создать проблемы для поисковых роботов и пользователей с активными дополнениями NoScript . Вот как выглядит код перенаправления с помощью JavaScript :
Самое главное здесь это третья строка кода. Объект ‘ window.location ‘ используется, чтобы сделать ссылку на текущий адрес сайта. Команда ‘ replace ‘ инструктирует браузер направить пользователя к домену назначения (‘ www.example.com ‘).
ВЛ Виктория Лебедева автор-переводчик статьи «
Как сделать редирект на HTML
Читайте нашу статью, если хотите узнать, что такое, для чего используется и как настроить редирект HTML.
Что такое редирект
Редирект — это перенаправление пользователя с одной страницы на другую. Когда пользователь вводит в адресной строке один URL-адрес, браузер автоматически переводит его на другой URL. Перенаправление можно настроить как на сторонний сайт, так и с одной страницы на другую внутри одного сайта.
Чаще всего используются такие редиректы:
- 301 редирект — его настраивают, когда страница навсегда перенесена на другой URL. При таком редиректе поисковики индексируют только новый вариант страницы — на неё и попадает пользователь.
- 302 редирект — его настраивают, когда страница перенесена временно. В этом случае поисковые системы индексируют и старый, и новый вариант страницы.
Для чего используют редирект
HTML redirect на другую страницу используют в таких случаях:
- перенос сайта на другой домен. Лучше всего настраивать редирект на другой сайт, в тот момент, когда старый сайт ещё ранжируется в поисковой выдаче;
- использование устаревших браузеров. Если часть посетителей пользуется старыми версиями браузеров, у них может не быть поддержки файлов Cookie и могут не работать другие способы перенаправления;
- показ новой информации с задержкой по времени — если нужно, чтобы редирект срабатывал не сразу. Допустим, вы проводите акцию на сайте и хотите привлечь к ней внимание. Для этого можно настроить переадресацию с главной страницы сайта на страницу акции;
- перенаправление пользователя на другую страницу сайта. Например, после оплаты покупки.
- перенос разделов на субдомены. Например, на странице вашего сайта site.ru/catalog был перечень услуг. Но набор услуг увеличивался, и со временем понадобилось перенести его на субдомен catalog.site.ru. В этом случае удобно настроить редирект с site.ru/catalog на catalog.site.ru;
- перенаправление нескольких доменов на один основной. Клиентам бывает сложно запомнить домен сайта. Поэтому часто владельцы сайтов регистрируют помимо основного домена схожие с ним доменные имена и настраивают редирект на основной сайт. Так клиенты с большей вероятностью попадут на основной сайт.
Настроить перенаправление можно несколькими способами:
HTML-редирект может замедлить продвижение сайта в поисковых системах. Рекомендуем его использовать только при отсутствии поддержки PHP, на тарифе хостинга Host-Lite.
В инструкции ниже мы расскажем, как настроить редирект посредством HTML.
Что такое HTML-редирект
Редирект на HTML настраивается в коде индексного файла. Индексный файл чаще всего называется index.html. Внутри файла в блоке head нужно прописать специальный метатег Refresh. При использовании метатега Refresh перенаправление срабатывает в коде страницы. Это значит, что перенаправляет не скрипт на сервере, а именно браузер.
Допустим, вы сделали HTML-редирект со страницы index.html на new_index.html. В этом случае перенаправление будет работать по такой схеме:
- Браузер запрашивает файл стартовой страницы index.html с сервера.
- Сервер находит index.html и отвечает на запрос браузера.
- Когда браузер открывает страницу index.html, он «читает» строки кода, которые прописаны в файле. Когда он доходит до строки с HTML-редиректом, то видит в ней упоминание файла new_index.html.
- Браузер посылает запрос к серверу, на котором хранится new_index.html.
- Сервер находит эту страницу и отвечает на запрос браузера.
- Браузер открывает страницу new_index.html.
Метатег Refresh выглядит так: