Перенаправления с помощью .htaccess, PHP, HTML и JavaScript

HTML redirect играют важную роль для масштабных веб-проектов. Функция переадресации трафика с одного веб-сайта на другой помогает лучше управлять потоками пользователей и выполнять реструктуризацию ресурса.

При помощи редиректов посетители могут отправлять сообщения с одинаковым содержанием на различных доменах, не позволяя их классифицировать как дублированный содержимое. Кроме этого перенаправления доменов являются эффективными методом для поисковой оптимизации.

Редиректы выполняются при помощи .htaccess, PHP скрипт, HTML мета-тегов и JavaScript.

Перенаправление доменов веб-сайта

Редиректы используются для информирования серверов о том, что контент веб-сайта был перенесен с одного URL-адреса на другой. Делать это надо, когда исходный веб-адрес(цель входящей ссылки) занимает высокие позиции в выдаче поисковых систем( SERP). В этом случае редирект сообщает поисковому роботу, что нужный контент был перенесен, предоставляя посетителю ссылку на новый адрес.

Без таких переадресаций веб-мастера столкнулись бы со страницей ошибки 404 вместо искомого веб-сайта. Это то, чего коммерческие ресурсы особенно стремятся избежать. Онлайн-магазины предоставляют постоянно меняющийся ассортимент товара, который выводится на многих страницах. Как только товар перестает продаваться, потенциальных покупателей перенаправляют на страницу с аналогичным продуктом. Это может более эффективно управлять потоком пользователей, а также уменьшить показатель отказов.

Кроме этого перенаправление может одинаковому контенту быть доступным по разным веб-адресам. Все альтернативные адреса перенаправляются в сторону приоритетного домена веб-сайта:

Перенаправления при помощи.htaccess, PHP, HTML и JavaScript

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

Различают клиентские и серверные 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 OnRewriteRule ^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’:

<?phpheader("Status: 301 Moved Permanently");header("Location: http://www.beispiel.de");exit;?>

При передаче через 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 выглядит следующим образом:

<meta http-equiv="refresh" content="10; url=http://www.example.com/">

Покупателю будет предложено перенаправление на новую страницу через метатег http-equiv = «refresh» . То, как это происходит, определяется в атрибуте ‘content’. Приведенный выше пример перенаправляет посетителей на домен ‘www.example.com‘ через десять секунд.

Переадресация при помощи JavaScript

JavaScript предоставляет простую функция HTML redirect домена на стороне покупателя. Но JavaScript поддерживается не всеми браузерами из-за соображений безопасности. Использование данного решения также может создать проблемы для поисковых роботов и посетителей с активными дополнениями NoScript . Вот как выглядит код перенаправления при помощи JavaScript :

<script> <!--window.location.replace('http://www.example.com'); //--></script>

Самое главное здесь это третья строка кода. Объект ‘window.location‘ используется, чтобы сделать ссылку на текущий адрес веб-сайта. Команда ‘replace‘ инструктирует браузер направить посетителя к домену назначения (‘www.example.com‘).

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *