redirect php как сделать

Как сделать редирект в PHP

Читайте нашу статью, чтобы узнать, как сделать редирект PHP.

Что такое редирект

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

Основные виды редиректов:

PHP location redirect

Для чего нужен редирект

Редирект может понадобиться в следующих ситуациях:

Redirect PHP URL HTTP

Переадресацию можно настроить несколькими способами:

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

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

Ниже мы подробнее рассмотрим принцип работы и настройку редиректа в PHP.

Как работает редирект в PHP

Предположим, вы сделали редирект со страницы index.php на index1.php. Когда пользователь откроет страницу с редиректом, в системе произойдёт следующее:

Браузер запросит файл стартовой страницы index.php с сервера.

Сервер, получив запрос от браузера, сообщит, что файл index.php больше недоступен и браузеру нужно искать новый файл index1.php.

Браузер отправит новый запрос к серверу, на котором находится index1.php, и получит ответ.

Браузер отобразит страницу index1.php.

Как настроить PHP-редирект

Прописывать редирект на сайт в PHP нужно в индексном файле. Чаще всего он называется index.php. Для настройки вам понадобится функция header( ). Она выглядит так:

Где $header — строка HTTP-заголовка, который вы будете использовать. Для редиректа нужно использовать заголовок Location — он указывает на адрес целевого сайта.

Чтобы настроить редирект PHP:

Впишите следующие строки:

Где http://site.ru/index1.php — ссылка на индексный файл страницы, на которую ведёт редирект. Если на конечном сайте установлен SSL-сертификат, вместо http:// укажите https://. После этого сохраните изменения:

Periodical readings PHP redirect

Готово, вы настроили редирект.

Как настроить редирект с задержкой

Иногда нужно, чтобы пользователь попал на страницу и только спустя несколько секунд перешел на конечный сайт. Такое перенаправление можно настроить в индексном файле с помощью функции sleep( ).

Чтобы настроить переадресацию с задержкой:

Где 5 — время ожидания в секундах.

Полный код редиректа с задержкой будет выглядеть так:

Источник

redirect php как сделать. Смотреть фото redirect php как сделать. Смотреть картинку redirect php как сделать. Картинка про redirect php как сделать. Фото redirect php как сделатьВ рамках данной статьи, я расскажу вам про PHP редирект или же перенаправление на другую страницу.

Периодически возникают такие ситуации, когда нужно на серверной стороне организовать переадресацию на другой url (внешние ссылки, перенос адресов страниц и прочее). И делается это на самом деле очень просто и без каких-либо проблем.

Редирект в php осуществляется с помощью функции header с передачей соответствующих параметров. Вот описание самой функции:

Общий редирект в php выглядит так:

Как видите, все очень просто, всего лишь нужно указать параметр «Location:» а затем указать необходимый url адрес. Учтите, что по умолчанию такой редирект будет с кодом 302 (временно перемещено) или с тем кодом, который был установлен так же с помощью функции header (пример чуть ниже будет). Так же учтите, что переадресация на другой url должна осуществляться только в том случае, если до этого не было сгенерировано никакого кода html на странице. То есть до вызовов echo, print_r и прочего. И после этого так же не должен генерироваться html. В противном случае, это может приводить к ошибкам. Если же html-нужен, то лучше воспользуйтесь задержкой.

Редирект с задержкой в php:

Редирект с задержкой в php позволяет вам отображать на странице какой-то собственный текст в течении некоторого времени до реальной переадресации. Обычно, это привычное «через 5 секунд вы будете перенаправлены, если этого не произошло, щелкните по этой ссылке».

Сделать это можно с помощью двух методов.

В данном случае, редирект осуществит сам браузер через 5 секунд. Сделать такое можно и просто разместив специальный мета-тег в блоке head html-страницы.

Результат будет одинаковым. Однако, полезно знать альтернативные методы, так как некоторые браузеры такое могут не поддерживать. В крайнем случае, вы всегда можете использовать код javascript для переадресации, установив в «window.location» нужный url адрес.

Редирект в php с кодом 301

Периодически необходимо осуществлять редирект с кодом 301 (постоянно перенесено), например, если у вас изменился механизм генерации ЧПУ ссылок. В такой ситуации можно использовать два варианта:

Как видите, просто указали необходимый код http.

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

Первая строка указывает код http, а вторая, собственно, задает адрес. В большинстве случаев, проблем не возникнет. Однако, если у вас используется режим FastCGI, то вместо «HTTP/1.1 301 Moved Permanently» может потребоваться написать «Status: 301 Moved Permanently«.

Теперь, вы знаете, как сделать php редирект для разных случаев.

Источник

Redirect php как сделать

В данной статье речь пойдет о том, как Вы можете организовать перенаправление, (или редирект, другими словами) программными средствами php. Следует отметить, что реализовывать перенаправление силами php, чаще всего имеет смысл, если требуется какая-то обработка пришедших данных, их модификация или проверка, по результатам которой происходит перенаправление. Именно такие реализации php редиректа я буду описывать в этой статье.

Основа php редиректа.

В основе редиректа на php лежит использование функции (справка):

Для того, чтобы осуществить непосредственный редирект, необходимо чтобы был указан специальный вид строки заголовка «location: …». Например, так:

в данном случае, после отправки заголовка, пользователь будет перенаправлен на любой сайт, указанный вместо «http://www.example.com/».

Важно отметить, что согласно спецификациии HTTP/1.1 необходимо в качестве аргумента «location» указывать абсолютный путь, с указанием протокола подключения (например: http), имени хоста (домен сайта) и пути назначения. Это требование прямо указано в справке по функции header().

Передача кода HTTP статуса при редиректе (301/302).

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

Второй способ принудительной передачи кода HTTP ответа – отправка строки заголовка иного вида, перед отправкой заголовка «location». В большинстве случаев это:

Однако, если на Вашем сервере включен режим FastCGI, то строка заголовка со статусом ответа должна быть несколько иной:

Php-редирект с условием.

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

Например, после авторизации пользователя идет обращение к базе данных с целью определения типа пользователя («администратор», «автор» или «читатель»), и в зависимости от того какой тип пользователя, происходит перенаправление в соответствующие разделы сайта. Саму авторизацию и извлечение данных рассматривать не будем, рассмотрим лишь способы организации проверки и отправки соотвествующего заголовка «location».

Мне представляется три наиболее логичных способа реализации такой возможности. Первый, заключается в последовательной проверке типа пользователя условиями «if … elseif …. else». Это может выглядеть примерно следующим образом:

Второй способ, связан с использованием конструкции «switch … case … ». Это может выглядеть примерно следующим образом:

Третий – это использование массива, в котором элементами являются адреса перенаправления, а ключами этих элементов типы пользователей. Это возможно реализовать примерно так:

Третий вариант, мне кажется наиболее красивым и простым.

Передача сессии при php-редиректе и отключенных куках в браузере клиента.

Если Вы в своих скриптах используете сессии, то при работе с функцией header() важно понимать ее некоторую особенность.

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

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

Проблема заключается в том, что для заголовков header(“location: …”) такая функция не предусмотрена. Если в браузере пользователя куки включены – то, как правило, никаких проблем с сессиями при header-редиректе не возникнет. А вот если – отключены, то сессия пользователя не сможет быть открыта заново на другой странице сайта (и пользователю, например, будет заблокирован доступ к контенту). Поэтому, в случае отключенных кук требуется вручную приписать идентификатор сессии к URL-адресу редиректа. Таким образом, идентификатор сессии будет передан методом GET:

Если у Вас этот параметр в значении «1», то чтобы не менять глобальные настройки сервера в php.ini, Вы можете в файле-приемнике (на который будет идти перенаправление), перед стартом сессии вставить код:

то есть локально, для данного файла, этот параметр перевести в значение «0». После чего выводите старт сессии:

Осталось лишь теперь достоверно знать: включены ли куки в браузере пользователя? И в зависимости от этого передавать или не передавать идентификатор сессии в виде GET-параметра запроса. Скрипт, с помощью которого можно определить доступность cookies в браузере пользователей Вашего сайта можно подсмотреть здесь.

Безопасность.

Редирект при переходе по внешней ссылке с сайта и скрытие реферальной ссылки.

По ряду причин, бывает выгодно все внешние ссылки с сайта сделать не прямыми, а пропустить редиректом через некий служебный файл Вашего сайта, возможно даже с задержкой на секунд 20-30. Это может быть выгодно, если Вы планируете зарабатывать на сайте с помощью различных бирж ссылок, так же отсутствие прямых внешних ссылок якобы улучшает индексацию сайта поисковыми системами. Хотя, это спорный вопрос. В конце концов, редирект внешних ссылок может быть интересен тем, кто не хочет «светить» посетителям своего сайта реферальные ссылки, для многих администраторов блогов это кажется важным.

В целом, принцип редиректа внешних ссылок можно изложить примерно таким образом. Вы создаете служебный файл редиректа (redirector.php), с примерно таким содержимым:

а в тексте статей Вашего сайта ссылки прописывать следующим образом:

И таким образом при каждом нажатии на ссылку, пользователь будет сначала переходить на файл redirector.php и тут же перенаправляться на тот URL, который указан в GET параметре «url» запроса.

Но, это лишь принцип. Сама по себе, приведенная реализация довольно топорна. Во-первых, по-хорошему нужно проверять регулярным выражением все, что приходит с GET-запросом. Во-вторых, по-хорошему нужно уберечься от того, чтобы никому не пришло в голову пользоваться Вашим файлом перенаправления, для того чтобы перенаправлять пользователей на свои сайты или на зараженные сайты. Ведь ничто не мешает такую же ссылку на этот файл опубликовать на любом другом блоге и это сработает. Это значит, что нужно как-то обезопаситься. Можно проверять параметр «REFERRER», чтобы убедиться что запрос пришел со своего сайта. Но, я точно знаю что этот параметр можно подделать – поэтому такая проверка не надежна. Да и вообще, писать ссылку и внутри этой ссылки в качестве GET-параметра еще одну ссылку – это как-то не красиво… В-третьих, если на Вашем блоге уже есть много внешних ссылок, то их всех придется переделывать руками – что очень не удобно. Я предпочитаю автоматизировать.

Поэтому мне видится другая, более красивая на мой взгляд реализация. Например, при создании новой статьи на Вашем блоге, вы можете совершенно спокойно публиковать в ней внешние ссылки «как есть». Но при выводе текста статьи на лицевой стороне сайта, воспользоваться php-функцией:

С помощью которой, можно осуществить глобальный поиск ссылок по всей статье. Если ссылка ведет на внешний ресурс, то саму ссылку записать в базу данных, а в тексте статьи заменить ее на синоним, который является ссылкой на redirector.php и в ней передать идентификатор исходной ссылки. В общем, код обрабатывающий текст статьи на выводе (или при сохранении статьи) может быть примерно такой (для ясности, специально вставил комментарии к каждой строке):

таким образом при выводе или при сохранении статьи, все внешние ссылки автоматически буду заменены на ссылку к скрипту redirector.php, в которой в качестве GET-параметра указан id ссылки. Скрипт можно усовершенствовать так, чтобы подставлялся не id ссылки, а транслитерация текста ссылки, что возможно будет более эффективно с точки зрения индексации ПС.

Сам скрипт redirector.php может содержать примерно такой код (с комментариями):

При этом структура таблицы «urls» этих ссылок в базе данных, такова:

redirect php как сделать. Смотреть фото redirect php как сделать. Смотреть картинку redirect php как сделать. Картинка про redirect php как сделать. Фото redirect php как сделать

То есть, в таблице два поля: числовое поле url-id, значение которого генерируется автоматически при создании новой записи; и строковое поле url – собственно значение самой ссылки.

Таким образом, перейдя по ссылке в статье, пользователь гарантированно будет перенаправлен на внешний ресурс, который подразумевался под этой ссылкой. Плюс ко всему, нет необходимости переписывать руками все уже имеющиеся ссылки во всех статьях Вашего блога – они будут заменены «одним махом».

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

Редирект с задержкой + Вывод обратного отсчета оставшегося времени.

Иногда на сайтах можно видеть при попытке перейти по внешней ссылке сообщение типа «Вы покидаете наш сайт. Вы будете переадресованы автоматически через N секунд.» и идет обратный отсчет секунд.

Вообще, есть как минимум 4 различных способа вызвать задержку перенаправления. Можно вызвать паузу в исполнении php-скрипта, непосредственно перед отправкой заголовка «location»:

задержка произойдет на 15 секунд. Но недостаток этого метода, в том что пользователь может быть введен в заблуждение, тем что ему придется эти 15 секунд ждать на той же странице, на которой он кликнул – выглядит так, будто бы ссылка не работает, а потом вдруг «бах» и перенаправило… Не очень удобно.

Второй способ: это немного модифицировать отправляемый заголовок, и вместо «location» написать:

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

Третий способ, связан с выводом в разеле head html документа тега в нем же указывается время задержки и адрес перенаправления. Это может выглядеть примерно так:

Задержка также 15 секунд и при этом открывается страница, с которой непосредственно идет редирект на целевой адрес.

Второй метод связан с отправкой специфического заголовка, третий – выводом html в разделе head документа, а четвертый – с выводом javascript кода, в котором указывается целевой адрес и задержка в милисекундах. Например так:

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

Сам код скрипта таймера кратко разбирается в здесь. Остается только подключить предлагаемый код таймера обратного отсчета к скрипту перенаправления. На примере второго способа редиректа, из предложенных в этой статье, это может выглядеть примерно так:

Источник

Как сделать редирект URL-адреса

Как сделать редирект URL-адресов с помощью PHP

Чтобы выполнить редирект с помощью PHP через определенное время:

Редирект на example.com выполняется через 5 секунд. Вы можете изменить это значение на необходимое.

Как сделать редирект URL-адресов с помощью JavaScript

Вот самый простой способ index html редиректа с помощью JavaScript :

Как сделать редирект URL-адресов с помощью HTML

Это называется meta-refresh редирект. Можно задать время ( в секундах ), изменив 10 на необходимое число. Обратите внимание, что этим методом редиректа часто злоупотребляют спамеры. Поэтому будьте осторожны, если вы реализуете его на общедоступном сайте.

В таких случаях рекомендуется задать интервал редиректа более 8 секунд, чтобы предотвратить любые возможные наказания от поисковых систем.

Как сделать редирект URL-адресов с помощью Perl

Вот два способа редиректа URL-адресов с помощью Perl :

Как сделать редирект URL-адресов с помощью ASP (VB Script)

Как сделать редирект URL-адресов с помощью mod_alias Apache

Самый простой способ перенаправления на серверах Apache :

При необходимости можно изменить любой из этих параметров. Например, если нужно подставлять старый URL-адрес динамически, чтобы перенаправить все следующие URL-адреса :

Можно использовать RedirectMatch вместо Redirect :

Также можно изменить код статуса с 301 ( постоянный редирект ) на 302 ( временный редирект ). Или на любой другой действительный код состояния. Ниже приведено руководство по регулярным выражениям, используемым в методе RedirectMatch :

Как сделать редирект URL-адресов с помощью mod_rewrite Apache

Пример 1: Редирект с www на без www

Это называется канонизацией. Вот несколько примечаний о регулярном выражении, используемом в этом примере:

Пример 2: Редирект всего домена

Чтобы осуществить редирект HTML с текущего домена на новый:

Аналогично можно перенаправить запросы из поддомена текущего сайта на поддомен на новом сайте:

Вот несколько примечаний о регулярном выражении, используемом в этом примере:

Пример 3: Перенаправление всех файлов HTML и PHP

Вот еще один, более сложный пример скрипта редиректа HTML mod_rewrite :

Как сделать редирект ошибки 404 с помощью Apache

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

Источник

Что такое 301 редирект и как его настроить

redirect php как сделать. Смотреть фото redirect php как сделать. Смотреть картинку redirect php как сделать. Картинка про redirect php как сделать. Фото redirect php как сделать

При работе с веб-ресурсами возникают ситуации, когда происходит удаление, перенос или изменение url-адреса отдельных страниц или сайта целиком. При этом требуется сохранить индексацию в поисковых системах и перенаправить пользовательский трафик на новый адрес. Для решения этой задачи используется функция под названием 301 Redirect. Это один из инструментов SEO, который позволяет не только избежать ошибок при открытии отдельных страниц, но и добиться корректной работы ресурса. Правильные настройки редиректа дают дополнительную возможность получить синергетический эффект в поисковой оптимизации и увеличить количество органического трафика на релевантные страницы. Рассмотрим более подробно, как происходит настройка редиректа 301.

Что такое переадресация 301

Permanent Redirect 301 применяется с целью организации постоянной переадресации с неактуального доменного адреса или url отдельной страницы на рабочую версию. Редирект может понадобиться в связи с глобальным переносом сайта на другой домен, техническими изменениями в написании адреса, удалением страниц, необходимостью внутренней и внешней перелинковки. Один из вариантов использования перманентной переадресации – редирект с нескольких доменных имен, созданных в разных зонах, на один актуальный адрес. Грамотное использование редиректа позволяет перемещать контент без потерь в поисковой индексации, сохранить и даже увеличить прежний вес и позицию в выдаче.

Настроить код состояния HTTP 301 можно разными способами:

с помощью HTML и PHP;

через панель управления или плагины соответствующей CMS;

при помощи специальных скриптов (программ);

на уровне хостинг-провайдера;

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

Альтернативные методы переадресации

В большинстве случаев постоянная переадресация является более правильным решением, чем временная. На практике это объясняется просто. Предположим, сайт сменил доменную зону, а затем еще и обзавелся защищенным протоколом https. При настройке временной переадресации в индексе Яндекса и Google по одним и тем же запросам появились три версии сайта с пропорциональным проседанием позиций в выдаче. После настройки редиректа 301 на приоритетный url произошло склеивание дублей, робот вернул сайт в топ выдачи.

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

redirect php как сделать. Смотреть фото redirect php как сделать. Смотреть картинку redirect php как сделать. Картинка про redirect php как сделать. Фото redirect php как сделать

В каких случаях используется постоянный редирект 301

Смена доменного имени, перенос сайта. Необходимо произвести тотальную настройку переадресации со старого адреса на новый, чтобы все без исключения запросы к old_site.ru перенаправлялись на new_site.ru.

Изменение написания url определенных страниц в целях SEO-продвижения, смены CMS или по иным причинам. Требуется настроить редирект с site.ru/1hdkr5 на site.ru/page_adress.

Перенос разделов на субдомены. Необходимо сменить адрес www.site.ru/example на example.site.ru.

Для аккумуляции трафика с адресов, купленных в разных доменных зонах, на один приоритетный ресурс.

Исключение дублирующихся страниц из индекса.

Склейка зеркал сайта – вариантов сайта с идентичным контентом, но разным написанием адресов: site.ru, www.site.ru, https://site1.ru и т.д. В этом случае выбирается один приоритетный домен и на него настраивается редирект со всех остальных зеркал.

Удаление ранее существовавшей страницы. В этом случае пользователи обычно видят ошибку 404. Большое количество таких сообщений негативно воспринимается как пользователями, так и поисковиками.

Для быстрого перехода пользователя на мобильную версию ресурса со смартфонов и планшетных устройств.

Создание постоянной переадресации 301 через настройки и плагины CMS

В большинстве популярных конструкторов сайтов и CMS (OpenCart, Joomla!, Битрикс, Wix, Тильда) предусмотрена настройка редиректов с помощью встроенных инструментов. Если сайт создан с помощью WordPress, для настройки переадресации можно воспользоваться следующими плагинами:

Redirection — самый популярный плагин для настройки редиректов. Кроме основной функции обладает следующими возможностями: сбором статистики переадресаций, отслеживанием ошибок 404, поддержкой регулярных выражений.

Safe Redirect Manager — простой плагин, который также поддерживает регулярные выражения, практически не влияет на производительность сайта.

Quick Page/Post Redirect Plugin — еще один удобный инструмент оптимизации. Один из недостатков — отсутствие поддержки регулярных выражений. К ссылкам можно добавлять атрибут «nofollow».

Simple 301 Redirects. Данный модуль обладает одним недостатком – url для переадресации необходимо прописывать вручную.

Для Битрикс кодировка будет выглядеть следующим образом:

В Joomla настройки переадресации производятся через панель администратора в разделе «Компоненты» => «Перенаправление». Здесь можно не только установить правила редиректа, но и отслеживать страницы с битыми ссылками и перенаправлять их на корректные адреса.

Но настроить редирект 301 довольно просто в базовом редакторе.

Найти файл можно через панель управления хостинга либо использовать FTP-клиент. При любом варианте нужно включить отображение скрытых файлов.

Для создания 301 редиректа перейдите в панель управления вашего сайта.

Рекомендуем все условия редирект записывать в блоке IfModule, дабы избежать ошибок при выполнении файла htaccess.

Перед тем как начать прописывать правила перенаправления, необходимо включить механизм преобразований (RewriteEngine) при помощи команды RewriteEngine On.

Хостинги применяют по умолчанию 302 или любой другой 3xx редирект. В связи с этим в правилах используются флаги. Рекомендуем дописывать в своих правилах [R=301,L].

Склейка зеркал сайта (www / без www)

Сайты http://name.site и http://www.name.site для поисковых систем являются разными. А по факту это разные адреса одного сайта.

Если произошла обратная ситуация и необходима переадресация с без «www» на «www», то в файл прописывается:

Редирект с http на https для всего сайта

Если данная конструкция не сработает, попробуйте другой вариант:

Если редирект не работает и в этом случае, попробуйте такой вариант:

В результате пройдет перенаправление на https всех пользователей и поисковых систем.

Постранично

Бывают случаи, когда необходимо создать редирект на https всех страниц, кроме одной. В этом случае используют постраничный редирект:

Для одной страницы

Для редиректа с http на https одной страницы (например page.php), в файл добавьте следующую конструкцию:

Редирект сайта с https на http

Если необходимо сделать 301 редирект всего сайта с https на http, в файл прописывается следующее:

Изменение домена

Редирект на страницу с другим url (без параметров)

Редирект для url (с параметрами)

Если адрес содержит параметр (например, http://name.site/articles.php?section=1, где параметром является «section=1» ), то прописывают следующую конструкцию:

Редирект с index.php на главную страницу

В тех случаях, когда главная страница сайта может быть недоступна по нескольким адресам одновременно, применяют следующую конструкцию:

Редирект со страниц со слешем на без слеша (для всего сайта)

Или более короткий вариант:

Редирект со страниц без слеша на слеш (для всего сайта)

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

301 редирект с 404 Not Found

Код 404 Not Found (страница не найдена) присваивается удаленной или несуществующей странице на сайте. Создание постоянного перенаправления с таких страниц актуально для контентных сайтов и крупных интернет-магазинов, где страницы часто удаляются по естественным причинам. Тогда возникает потребность перенаправить посетителей на одну из главных страниц сайта, чтобы они не уходили с ресурса при виде ошибки.

301 редирект для страниц 404 Not Found сделать совсем не сложно. Например, этот код перенаправит со всех 404-страниц на главную:

Однако делать такие редиректы в массовом порядке не рекомендуется, так как это может испортить SEO-статистику всего ресурса.

Пример файла htaccess, после добавления в него редиректов:

точка заменяет произвольный символ

обозначает перечень знаков, совпадающих с буквами a, b, или с

список символов вне указанного диапазона (кроме a, b, с)

указывает на то, что предыдущий знак может повторяться 0 или больше раз

команда найдет идущие подряд символы из заданного набора

приводит к противоположному эффекту

заменяет любой набор символов

ищет все подстроки между кавычками

начало строки (когда используется в начале выражения)

означает конец строки

цифра, буква или подчеркивание _

заменяет любую цифру

может заменить любой знак, кроме цифры

для замены любой цифры

для всех букв от a до z в нижнем регистре

для каждой буквы от A до Z в верхнем регистре

любая буква от a до Z во всех регистрах

Другие способы создания переадресации 301

Через PHP

Данный вариант подойдет тем, кто хорошо разбирается в web-программировании и PHP. Необходимо открыть файл index.php в корне CMS-движка и прописать там:

(в первой строке укажите старый url, а во второй — новый)

ASP-редирект

ASP.NET редирект

Найдите в корне своего сайта файл web.config и вставьте в секцию синтаксис:

ColdFusion редирект

JSP (Java) редирект

Данный способ подойдет для небольшой корректировки простых сайтов. Код можно прописать лишь в одном файле, а сам файл добавить на все нужные страницы, указав:

CGI-скрипт на PERL

Ruby on Rails

Редирект в Nginx

HTML-редирект

Этот способ подойдет для небольших статических сайтов, когда требуется настроить переадресацию для одной страницы. Для этого необходимо добавить специальный мета-тег внутри кода HTML. Пример записи редиректа на другой ресурс после 5-секундной задержки:

Если поставить значение 0 вместо 5, то переадресация на https://livepage.pro произойдет моментально.

Однако для больших сайтов HTML-перенаправление делать сложно и затратно по времени, поэтому лучше отдать предпочтение другому варианту.

Редирект 301 в панелях управления сервера

Большинство панелей управления сервера предоставляют возможность настройки переадресации с кодом 301. Рассмотрим варианты решения этой задачи на примере двух популярных ПУ для VDS.

Cpanel

Нужно перейти в блок «Домены» => «Перенаправления». В появившемся окне выполнить следующее:

В строке «Тип» выбрать «Постоянный 301».

В строке «https://www» из выпадающего списка выбрать домен сайта (например, example.ru).

В строке «Перенаправляет на» указать для домена адрес http://example.ru.

В блоке «Перенаправление www» поставить галочку напротив «Перенаправлять только с www».

Сохранить изменения кликом на «Добавить».

ISPmanager

Автоматическое создание переадресации

При отсутствии знаний и опыта самостоятельной настройки редиректа можно воспользоваться сервисами автоматической генерации:

Проверка корректности настроек 301 редиректа

Самый простой способ проверки переадресации – ручное тестирование. Для этого необходимо вставить в адресную строку браузера url сайта или страницы, с которой настроено перенаправление. Если при открытии будет доступен ресурс, на который настроен редирект, то переадресация выполняется правильно.

Для автоматической проверки можно воспользоваться специальными сервисами:

программой Screaming Frog Seo Spider, способной просканировать весь сайт.

Существует ряд ошибок, которые следует избегать при настройке редирект 301:

использование перенаправлений между страницами сайта без изменения их url в ссылках;

установка временной переадресации вместо постоянной;

неправильный выбор типа редиректа;

перенаправление файла robots.txt;

непонимание разницы между rel=canonical и кодом 301;

редирект на нерелевантный контент;

переадресация, которая не приводит к 200-й странице.

Стоит отметить проблему создания цепочки ссылок, которая может привести к появлению циклического редиректа — ошибки с кодом «ERR_TOO_MANY_REDIRECTS». Наиболее распространенные причины возникновения такого бага – неправильная настройка в процессе создания переадресации, вирусная атака, слишком длинная цепочка редиректов. Не рекомендуется настраивать редирект, содержащий более пяти адресов. Оптимальной является прямая переадресация со старого на новый url.

Заключение

Использование редиректа 301– очень важный способ поисковой и пользовательской оптимизации веб-ресурса. Использовать его следует с осторожностью. Неправильная настройка может привести к сбоям в работе сайта и потере поисковых позиций.

Источник

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

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