301 редирект через php

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

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

Иногда нужно, чтобы пользователь, который перешёл по ссылке, попал на другой URL-адрес . Предположим, вы делаете редизайн сайта: меняете цветовое оформление, перемещаете разделы на странице, добавляете новый функционал. Но пока работа не закончена, нужно, чтобы сайт продолжал работать. В этом случае можно скопировать его прежний вариант на другой домен или поддомен. Также бывает, что на сайте проходит временная акция. Пока действует предложение, вы хотите перенаправлять клиентов на страницу акции. В таких случаях поможет настройка редиректа.

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

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

  • 301 редирект — используется, когда страница окончательно перемещена на другой URL. При таком редиректе поисковики индексируют только новый вариант страницы — той, на которую попадает пользователь.
  • 302 редирект — используется, когда страница перемещена временно. В этом случае поисковые системы индексируют все варианты страницы: и старую, и новую.

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

PHP location redirect

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

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

  • замена движка сайта. Когда меняется архитектура сайта, появляется необходимость в настройке редиректа;
  • замена домена. После того как вы перенесли сайт на другой домен, прежний домен некоторое время ещё отображается в поисковике. Если сделать PHP-редирект, поисковик автоматически направит пользователя на новый домен;
  • изменение структуры ресурса. Пока вы меняете структуру сайта, можно создать копию старой версии и сделать на неё редирект;
  • при авторизации. Часто пользователи сайта разделяются на группы, например администратор и посетитель. Пользователи в разных группах имеют разные привилегии, поэтому безопаснее сделать редирект для каждой группы на нужную версию сайта;
  • переход на мобильную версию. Если посетитель сайта использует планшет или мобильный телефон, с таким редиректом он попадёт на версию, которая адаптирована под мобильные устройства;
  • перенос разделов на поддомены. Например, на странице вашего сайта site.ru/shop был каталог товаров. Но ассортимент расширялся, и со временем понадобилось перенести этот раздел на поддомен shop.site.ru. В этом случае редирект настраивается с site.ru/shop на shop.site.ru;
  • несколько доменов в разных доменных зонах. Предположим, вы разместили сайт на домене site.ru. При этом у вас есть ещё несколько доменов: site.com, site.info и site.biz. С доменов в зонах .com, .info и .biz можно настроить редирект на site.ru, чтобы у этого сайта росла посещаемость.
Читайте также:  Javascript слой в слое

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

Redirect PHP URL HTTP

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

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

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

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

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

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

  1. Браузер запросит файл стартовой страницы index.php с сервера.
  2. Сервер, получив запрос от браузера, сообщит, что файл index.php больше недоступен и браузеру нужно искать новый файл index1.php.
  3. Браузер отправит новый запрос к серверу, на котором находится index1.php, и получит ответ.
  4. Браузер отобразит страницу index1.php.

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

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

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

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

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

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

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

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

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

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

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

Где 5 — время ожидания в секундах. Полный код редиректа с задержкой будет выглядеть так: Celebrity PHP redirect

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

Источник

301 редирект на php – как сделать

Наша статья о 301 редиректе с помощью .htaccess взорвала интернет и собрала уже более полумиллиона просмотров. htaccess – один из самых удобных, но единственных способов перенаправить страницу. Если у вас сайт на php, то вы можете воспользоваться данной инструкцией. Если у вас самописный сайт, который состоит из набора .php страниц, то для переадресации со старого URL на новый, вам нужно добавить в самый верх файл кусок кода с редиректом на нужную страницу.

Редирект страницы

header("HTTP/1.1 301 Moved Permanently"); header("Location: https://domain.ru/test.html"); exit();

Если редиректов на php нужно поставить много, то есть смысл составить отдельный файл, который будет содержать в себе все правила, например redirect.php.

if($_SERVER['REQUEST_URI'] == '/old-url-1/') < header("HTTP/1.1 301 Moved Permanently"); header("Location: https://domain.ru/new-url-1/"); exit(); >if($_SERVER['REQUEST_URI'] == '/old-url-2/') < header("HTTP/1.1 301 Moved Permanently"); header("Location: https://domain.ru/new-url-2/"); exit(); >

Таких правил можно написать сколько угодно, организовать условия синтаксически – тоже можно по-разному. Далее такой файл подключается к вашему сайту.

Редирект каждой страницы на такую же страницу другого домена

$ref=$_SERVER["QUERY_STRING"]; if ($ref!="") $ref="?".$ref; header("HTTP/1.1 301 Moved Permanently"); header("Location: https://domen.ru/".$ref); exit();

Проверка редиректа

Проверить переадресацию как для браузера, так и для робота:

  • Простой, удобный и функциональный – https://www.bertal.ru/
  • В Яндекс.Вебмастере: https://webmaster.yandex.ru/tools/server-response/

Полезные материалы:

Источник

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

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

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

  • 301 – текущая страница удалена на всегда, заменой старой считать новый URL.
  • 302 – текущая страница временно не доступна, заменой считать пока новый URL.
  • 303 – используется после отправки формы методом POST (подробнее Post/Redirect/Get — PRG).

Итак, сделать 301-й редирект можно так:

header('Location: https://example.com', true, 301); exit();

Но функция header() не сработает если до ее вызова в браузер уже выводился какой-то контент и вызовет ошибку:

Warning: Cannot modify header information — headers already sent by…

Исправить ее можно использовав буферизацию вывода добавив в самое начало скрипта ob_start() ;

Также можно подстраховаться добавив JS-редирект и ссылку если функция header() не сработает.

Упростить использование кода можно выделив его в отдельную функцию:

function redirect($url, $code = 301) < header('Location: ' . $url, true, $code); echo ""; echo 'Перенаправление… Перейдите по ссылке.'; exit(); > /* В index.php */ if ($_SERVER['REQUEST_URI'] == '/url-old') < redirect('https://example.com/url-new'); >
$urls = array( array('/url-old-1', 'https://example.com/url-new-1'), array('/url-old-2', 'https://example.com/url-new-2'), array('/url-old-3', 'https://example.com/url-new-3'), ); foreach ($urls as $row) < if ($_SERVER['REQUEST_URI'] == $row[0]) < redirect($row[1]); >>

Источник

Оцените статью