Как сделать 300 редирект
Как сделать редирект в 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 — время ожидания в секундах.
Полный код редиректа с задержкой будет выглядеть так:
Redirection 3xx. Редиректы
Что такое редирект?
Как правило, эти предпочтения сводятся к двум вариантам: выбор нужного языка или подходящей кодировки. Поскольку современные браузеры понимают и правильно отображают практически любую кодировку, то использование 300-го редиректа фактически сводится к автоматическому выбору языка.
Как это работает?
Пользователь настраивает свой браузер, указывая предпочитаемый им язык и кодировку, и спокойно гуляет по сети.
Но вот вдруг этот пользователь запрашивает страницу сайта, и в ответ получает 300-й код редиректа вместе со списком характеристик и адресов, на которые следует перейти.
В случае совпадения характеристики, браузер, исходя из предварительных настроек, автоматически переходит на наиболее подходящий пользователю адрес.
Перемещен навсегда (Moved Permanently). Редирект сообщает браузеру и поисковой машине о том, что запрошенный адрес страницы не существует. И навсегда перемещен по новому адресу, который указывается в заголовке после Location, где его впредь и следует искать.
Используется для так называемой склейки как отдельных страниц, так и доменов.
Как это работает?
Браузер клиента (или поисковая машина), при запросе некоторого адреса, вдруг получает в ответ 301 Moved Permanently.
В идущих за данным ответом служебных заголовках ищется такой, который начинается на «Location:», и загружается страничка с новым адресом, указанным после двоеточия.
Данный редирект кэшируется.
Документ найден (Found). Данный редирект является временным. Используется для того, чтобы дать знать пользователям и поисковикам о том, что запрошенная страница временно недоступна.
Зачастую используется при проведении каких-либо технических работ над сайтом, или его частью: при обновлении движка, оптимизации базы данных, а также порядочными хостерами в случае несвоевременной оплаты за хостинг.
Как это работает?
При использовании 302-го редиректа браузер (или поисковик) обязаны перейти по адресу, указанному в заголовке Location, но при этом учесть, что новый адрес все таки временный, и в дальнейшем, скорее всего, содержимое страницы будет другим.
Кэширование производится только в случае наличия заголовка Cache-Control или Expires.
Где это используется?
303 редирект используется достаточно редко.
Данный редирект запрещен к кэшированию.
Как это работает?
Браузер запросил документ, и передал вместе с запросом временные или иные метки в заголовках Last-Modified или ETag.
При следующем обращении браузера к этой странице, он должен передать эти метки в заголовках If-Modified-Since и If-None-Match соответственно.
Если документ не изменился с прошлого запроса, сервер вместо страницы документа, выдает в ответ 304 редирект.
Браузер берет из своего локального кеша страницу, сохраненную при прошлом запросе, и показывает ее пользователю.
Как это работает?
Браузер запрашивает страницу.
В ответ сервер выдает 305 редирект, и в заголовке Location передает адрес прокси-сервера.
Браузер повторяет запрос к этой же странице, но уже с использованием указанного прокси.
306 редирект на данный момент не используется.
Он использовался в прошлых реализациях http-протокола, и на данный момент зарезервирован для дальнейшего использования. Упомянут в RFC 2616 (обновление HTTP/1.1).
Временный редирект (Temporary Redirect) означает, что необходимо запросить документ, переданный в заголовке Location тем же методом (GET, POST, HEAD), что и исходный документ.
Как это работает?
Браузер или робот поисковой системы запрашивает
Данный редирект временный. Кэширование следует производить только в случае наличия в ответе сервера заголовков Cache-Control или Expires.
Как сделать редирект?
Делаем редирект на php
Второй параметр replace указывает, нужно ли заменять заголовки с одинаковыми именами (true), или же добавлять в конец (false).
Параметр http_response_code указывает код http-ответа (300, 301, 302 и т.д.).
Пример редиректа на php
Если URL-path заканчивается не слешем, то редирект будет срабатывать только в случае точного совпадения запрошенного пользователем адреса и URL-path.
Если URL-path заканчивается слешем, то редирект сработает не только для указанного адреса, но и для всех, которые начинаются на указанный. А к URL-to-redirect будет добавлена часть адреса, следующая за последним указанным слешем в URL-path.
Пример
Делаем редирект на html
Пример
Редирект при помощи javascript
Такой редирект часто используют для «обмана» поисковых систем: так как javascript обрабатывается только в браузере пользователя, но не обрабатывается поисковыми пауками. На сегодняшний день это утверждение справедливо для всех поисковиков, кроме гугла: Google успешно распознает многие редиректы, написанные с помощью яваскрипт.
Что такое редирект
В этой статье мы подробно разберём тему редиректов. Расскажем, что такое редирект сайта, в каких случаях его нужно настраивать и какими способами это можно сделать.
Что такое редирект
Редирект (от англ. redirect — перенаправление) — это автоматическая переадресация посетителя с одного URL-адреса на другой. То есть при переходе на страницу, для которой настроен редирект, пользователь будет автоматически попадать на другую страницу. Как правило, для посетителей сайта этот переход остаётся незаметным.
Схема работы редиректа на уровне браузера
Представим, что вы настроили редирект со страницы мой-сайт.ру на тест-сайт.ру. В этом случае при каждом переходе на страницу мой-сайт.ру на техническом уровне будет происходить следующее:
Редирект можно настроить как с одной страницы на другую в рамках одного сайта, так и со страницы одного сайта на страницу другого сайта. Разберём, зачем и в каких случаях нужно настраивать редирект.
Зачем нужен редирект
В первую очередь редирект влияет на SEO-показатели сайта. Его настраивают для того, чтобы не потерять позиции в поисковой выдаче. Дело в том, что поисковые роботы регулярно обходят и индексируют все страницы сайта. После каждой такой индексации отдельная страница и сайт в целом могут изменить место в поисковой выдаче — подняться на более высокую позицию или, наоборот, опуститься на более низкую.
Если роботы заметят, что одна из страниц удалена или на ней есть ошибка, они перестанут её индексировать. Это значит, что трафик страницы будет потерян. Вместе с ним будут снижаться позиции в поисковой выдаче.
Также если не настроить редирект для удалённой или перенесенной страницы, пользователи могут подумать, что искомый адрес больше недоступен и перестанут посещать страницу. Это приведёт к потере клиентов.
Самые распространенные случаи, в которых нужен редирект:
В зависимости от конкретной ситуации для настройки используют тот или иной вид редиректа. Рассмотрим, какие виды редиректов бывают.
Виды редиректов
Перед тем как приступить к настройке, определитесь, какой вид редиректа нужен в вашем случае. Ниже мы описали все основные виды редиректов.
300 Multiple Choice (множественный выбор) — это редирект, который сообщает, что по искомому запросу можно перейти не на одну, а на несколько страниц. С его помощью можно настроить перенаправление с основного URL на несколько других страниц, которые похожи по тематике, но отличаются по содержанию. Нередко редирект такого типа встречается на страницах «Википедии». Если какое-то слово или термин имеет несколько значений, вместо одной страницы с определением Википедия выдает страницу со ссылками на объяснение каждого варианта. В зависимости от искомого значения пользователь переходит по нужной ссылке.
301 Moved Permanently (навсегда перемещен) — это постоянный редирект. Используйте этот вид редиректа, если хотите переместить страницу на новый адрес насовсем. В этом случае вы сообщите поисковым системам, что стоит обратить внимание на новую страницу, а исходную можно полностью исключить из индексации. Если настроить редирект 301 некорректно, на странице будет отображаться ошибка 404. Индексация страниц с ошибками приводит к снижению SEO-показателей всего сайта.
302 Moved Temporarily (временно перемещен) — это временный редирект. Редирект 302 настраивают в том случае, когда на основной странице временно ведутся те или иные работы. Все файлы копируют и размещают по другому адресу на определенный период. При переходе на страницу с таким редиректом поисковые роботы сразу поймут, что она перенаправлена на другой ресурс только временно. Поэтому при следующем переобходе они вновь попробуют проиндексировать исходную страницу. И так пока контент не «вернётся» на исходную страницу.
303 See Other (просмотр другого) — это редирект на схожую по тематике страницу. С помощью 303-го можно перенаправить пользователя не на дубль исходной страницы на новом URL, а на совершенно другую страницу, но с похожей тематикой. Такой тип редиректа нередко используют в интернет-магазинах. Если какой-то товар временно недоступен для заказа, с его страницы настраивают редирект на страницу продукта со схожими характеристиками. Когда товар снова появляется на складе, редирект просто убирают.
305 Use Proxy (использовать прокси) — этот редирект отсылает браузер к использованию прокси-сервера. В этом случае при обращении браузера к странице в ответ приходит адрес прокси-сервера. Это значит, что к ресурсу можно подключиться только с помощью прокси — промежуточного сервера, который является посредником между пользователем и сервером, на котором хранятся файлы сайта. Прокси-подключение настраивают для защиты локальной сети от внешних подключений, экономии трафика (передачи данных в сжатом виде), кэширования данных и другого.
307 Temporary Redirect — временный редирект. Он сообщает поисковому роботу, что страница временно перенесена на другой URL и через некоторое время вновь будет доступна по старому адресу. Этот редирект похож на 302 Moved Temporarily, однако у него есть существенное отличие — 307 редирект сохраняет метод передачи запроса (GET, POST), который указывает поисковикам, что кешировать документ не нужно. Его используют для краткосрочного переезда, например небольших технических работ. Стоит отметить, что иногда проще на пару часов закрыть сайт на технические работы без редиректа.
Редирект rel=«canonical» — этот редирект предназначен только для поисковых роботов, посетитель при этом видит два дублирующихся ресурса одновременно. С его помощью владелец ресурса сообщает роботам, что у сайта есть несколько версий и они должны просканировать только приоритетную копию, которую владелец пометил как «canonical». Остальные страницы тоже доступны пользователям, но они не индексируются.
Также существуют 304-й и 306-й редиректы. Однако сейчас эти виды практически никто не использует. Некоторые браузеры даже не умеют интерпретировать код таких перенаправлений.
Самые популярные виды редиректов — 301 и 302. При этом чаще всего для переадресации url используют 301-й редирект. Для его настройки используют разные способы.
Основные способы настройки 301 редиректа
Можно выделить несколько основных способов настройки редиректов. Между собой они отличаются техническим исполнением, а также источником перенаправления.
1) PHP. PHP-редирект прописывается в индексном файле (чаще всего его название — index.php). Для настройки нужно найти файл index.php в корневой папке сайта и вписать в него строку кода. Для настройки используют функцию header:
В этом случае переадресация будет срабатывать в скрипте, который размещен на сервере. Это самый надёжный тип редиректа с высокой скоростью перенаправления. Этот тип лучше всего подойдёт, если вам нужно сделать перенаправление для всего сайта.
В этом случае переадресация будет срабатывать на уровне браузера — в коде страницы. Скорость перенаправления из браузера ниже, чем из скрипта на сервере. Поэтому этот тип больше подходит для настройки редиректа для одной или нескольких страниц.
3) HTML. Такой тип редиректа подойдёт для сайтов, которые написаны на языке HTML. Редирект настраивается в исходном коде страницы через индексный файл, который чаще всего называется index.html. Для настройки нужно добавить мета тег refresh:
Это также достаточно «медленный» тип, так как он срабатывает из браузера.
4) JavaScript. Такой тип редиректа подойдёт для сайтов, которые написаны на языке JavaScript. Он настраивается в исходном коде страницы путём изменения текста между тегами head и /head. В этом случае перенаправление также срабатывает со стороны браузера — с низкой скоростью. Как правило, JavaScript настраивают в случаях, когда хотят перенаправить на страницу не сразу, а с задержкой. Пока происходит перенаправление, на странице отображается баннер с фразой: «Вы будете автоматически переадресованы на наш новый сайт».
Если вы используете Nginx, в его конфигурационном файле можно настроить Nginx redirect 301.
Как настроить редирект
Как сделать 301 редирект и другие перенаправления? Выбор способа настройки редиректа зависит от ваших целей и опыта. Перед настройкой определите цель редиректа (перевод всего сайта на новый адрес, редирект со страницы на страницу или другое). После этого выберите, как вы будете работать — через панель управления хостингом или в коде. Также обратите внимание, на какой операционной системе работает ваш хостинг (Linux или Windows). После этого используйте подходящую для вашего случая инструкцию.
Через панель управления хостингом
Варианты настройки через панель управления хостингом ISPmanager, cPanel и Plesk подойдут вам, если вы являетесь клиентом REG.RU.
Через код сайта
Если вы хотите настроить редирект вручную через код, используйте инструкции ниже.
Итак, редирект — это простыми словами перенаправление на другую страницу. С помощью наших инструкций вы сможете настроить переадресацию для нужного сайта или страницы.
При проектировании и тестировании веб-сайта иногда требуется выполнить временное автоматическое перенаправление с одной страницы на другую без потери его функциональности. Для этой цели применяются редиректы. Особенности их использования, правильная настройка и примеры приведены в этой статье.
Что такое редиректы
Редирект — это метод автоматического перенаправления посетителей с одной страницы на другую или на какой-либо сайт.
В каких случаях нужно использовать
Основные виды редиректов
Номера редиректов находятся в диапазоне от 1хх до 5хх, но на практике чаще применяются 3хх и 4хх. Первые (3хх) связаны с перенаправлением, а вторые (4xx) — с ошибками в браузере у пользователя.
Классификация 3хх редиректов
Для клиента все типы редиректов одинаковы, но браузеры и роботы поисковых систем идентифицируют их по коду состояния. Напрямую с перенаправлением связаны 5 видов редиректов (301, 302, 303, 307 и 308), которые используются для SEO-оптимизации сайта. Рассмотрим каждый из них подробно.
301-редирект
С точки зрения seo-оптимизации интернет ресурса редирект 301 является наиболее значимым, поскольку передает условный вес ссылки с небольшой потерей. Он кешируется по умолчанию поисковыми системами и позволяет избежать тупиковых переходов или объединения ссылок.
Когда используется
Не рекомендуется применять
302 и 303
Редирект 302 рекомендуется использовать при временном перемещении интернет-ресурса на другой адрес (время должно указываться в настройках).
303-редирект используется так же как и 302, поскольку никогда не кэшируется. Его применяют при обозначении неопределенного времени размещения интернет-ресурса. Запрос к адресу выполняется посредством метода «GET».
Когда используется
Не рекомендуется применять
307 и 308
Для замены 302-редиректа используется 307, когда поисковым системам требуется сообщить о сервере, который совместим с HTTP 1.1. Он делает постоянной величиной метод запроса, указанный в настройках, и не кэшируется по умолчанию. Отличие 308 редиректа от 307 состоит в том, что с его помощью можно обрабатывать POST-формы, не изменяя метод переадресации.
Когда используется
Не рекомендуется применять
Классификация 4хх редиректов
Методы реализации перенаправлений
Первый тип наиболее удобен и часто используется для настройки переадресации, поэтому разберем его подробнее.
Алгоритм установки FTP-клиента FileZilla
Что такое mod_rewrite
Чтобы прописать редирект в файле конфигурации сервера Apache, нужно придерживаться некоторых правил.
Директива RewriteCond
Определяет условия при которых происходят преобразования модуля mod_rewrite на Apache сервере.
Директива RewriteRule
Задает правила благодаря которым происходят эти преобразования.
Расположение правил
Все директивы нужно прописывать после двух строк:
Регулярные выражения
Специальные символы
Флаги
Указываются в квадратных скобках — [].
Модификаторы повторения символов для шаблонов
Комментарий
Не обрабатывается и обозначается символом « # » в начале строки
Примеры редиректов
Для использования конкретного редиректа достаточно поменять символы «3хх» на требуемые значения (от 301 до 308) с учетом его характеристик.
Простой 301-й редирект с одной страницы на другую
В этом случае ссылку на новую страницу нужно прописывать полностью с протоколом http или https.
Другой вариант редиректа с директивой RewriteRule
Редирект без изменения URL
Чтобы сделать редирект без изменения url, нужно не указывать тип редиректа « R ». В результате по адресу http://site.ru/category/post будет открываться страница page.html, а в адресной строке браузера останется /category/post
Убрать www в начале домена можно двумя способами.
Первый способ с указанием домена:
Второй способ без указания доменного имени:
Добавить www в начало домена можно также двумя способами.
Редирект с http на https
Для перенаправления всех страниц с портокола http на https есть несколько способов.
В случае если не сработал первый способ попробуйте другой.
Если оба способа не работают и происходит циклическая переадресация добавьте в условие X-Forwarded-Proto.
Ещё один вариант редиректа c http на https.
Редирект с https на http
Бывает необходимо сделать обратное перенаправление с https на http. Сделать это можно слудующим образом:
Перенаправление с index.php, index.html и index.htm на главную страницу
Убрать index.php в URL для всех страниц сайта
Перенаправление на index.php
Редирект всех страниц на главную (для всех внутренних страниц сайта)
Редирект на другой сайт или склейка домена
Добавить слэш в конце URL
Убрать слэш в конце URL
В настоящее время пользуются популярностью адаптивные сайты, которые правильно отображаются в зависимости от разрешения экрана устройства. Если все же нужно сделать перенаправление на мобильную версию сайта то сделать это можно с указанием конкретных user agent. Для примера возьмем самые популярные, которые можно заменить или добавить другие.
Если нужно чтобы в браузере на ПК по ссылке m.site.ru открывалась обычная версия сайта, то нужно поставить знак «!» в предыдущем примере.
Редирект на 404 страницу (обработка 404-й ошибки):
Редирект с основного домена на поддомен
Редирект с IP на домен
123.123.123.123 нужно заменить на IP-адрес сервера.
Редирект с кириллического URL
Домены на кириллице российской национальной зоны «.рф» и кириллические ссылки подчиняются тем же правилам редиректа, как и все остальные. Но, чтобы избежать ошибок при создании перенаправления, кириллические символы (Unicode) следует преобразовать в латинские (ASCII) методом Punycode.
Конвертация осуществляется автоматически с помощью специализированных онлайн-сервисов, например, таких как Charset или Cryptii. Полученное в итоге алфавитно-числовое значение следует вставить в описанные шаблоны использования редиректов, вместо имени кириллического домена или ссылки.
Начни экономить на хостинге сейчас — 14 дней бесплатно!
Если вы ещё не знаете, зачем нужно перенаправление страниц сайта, читайте нашу статью Что такое редирект.
Для чего нужен 301-й редирект
Помимо разных способов настройки переадресации, существуют разные виды редиректов. Каждый из них имеет своё кодовое название. Основные виды:
Также существуют 304-й, 306-й и 307-й редиректы. Однако сейчас эти виды практически никто не использует. Один из самых популярных видов — это 301-й.
301-й редирект (Moved Permanently) — это постоянный редирект. Используется для перемещения страницы на новый URL-адрес насовсем. Когда поисковые системы встречают страницу с редиректом 301, они «понимают», что теперь необходимо индексировать новую страницу, а старую можно полностью исключить из индексации. Если настроить переадресацию 301 некорректно, на странице будет отображаться ошибка 404. Индексация страниц с ошибками приводит к снижению SEO-показателей всего веб-ресурса.
1С-Битрикс — популярная CMS в которой время от времени необходимо настраивать перенаправление.
Где www.site.ru — домен, с которого происходит редирект, а site.ru — домен, на который происходит редирект.
Где www. — домен, с которого происходит редирект, а www. — домен, на который происходит редирект.
Где site.ru — имя вашего домена.
Где site.ru — имя вашего домена.
Где site.ru — имя вашего домена.
Где site.ru — имя вашего домена.
Для всех страниц с http:// на https://, в том числе и с http://www на https://
Если первый вариант не поможет, воспользуйтесь вторым вариантом:
Если все варианты не помогли и возникает циклическая переадресация: