php header redirect 301
PHP редирект (301)
Редирект, возвращающий код 301 сообщает браузерам и поисковым системам, что искомая страница перемещена навсегда (moved permanently) и перенаправляет на ее новый адрес. Такой редирект чаще всего используется при переносе сайта с одного домена на другой, и позволяет сохранить весь ссылочный вес и параметры сайта.
Если вам нужно сделать 301 редирект страницы или домена, а доступ к файлу htaccess отсутствует, не стоит ругать и поносить своего хостера и тот день когда вы оплатили этот **** хостинг.
Для случаев когда 301 htaccess редирект не возможен, можно использовать редирект на PHP.
PHP редирект домена
Для того, чтобы сделать перенаправление с одного домена на другой с сохранением всех параметров запроса (в том числе адреса целевой страницы), в текстовом редакторе создаем файл с расширением: .php (называем его index.php) и вставляем туда следующий код, не забывая вставить свое доменное имя:
После этого, закачиваем этот файл через FTP на сервер с которого вы будете перенаправлять посетителей и поисковиков.
PHP редирект одной страницы
Чтобы сделать редирект с одной страницы на другую в пределах одного либо разных доменов, перед основным кодом перенесенной страницы вставляем:
Страница в которую бы вставляете этот код должна иметь расширение .php, в противном же случае вам следует воспользоваться htaccess редиректом для перенаправления пользователей и поисковиков.
Как сделать редирект в 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 — время ожидания в секундах.
Полный код редиректа с задержкой будет выглядеть так:
Что такое 301 редирект и как его настроить
При работе с веб-ресурсами возникают ситуации, когда происходит удаление, перенос или изменение url-адреса отдельных страниц или сайта целиком. При этом требуется сохранить индексацию в поисковых системах и перенаправить пользовательский трафик на новый адрес. Для решения этой задачи используется функция под названием 301 Redirect. Это один из инструментов SEO, который позволяет не только избежать ошибок при открытии отдельных страниц, но и добиться корректной работы ресурса. Правильные настройки редиректа дают дополнительную возможность получить синергетический эффект в поисковой оптимизации и увеличить количество органического трафика на релевантные страницы. Рассмотрим более подробно, как происходит настройка редиректа 301.
Что такое переадресация 301
Permanent Redirect 301 применяется с целью организации постоянной переадресации с неактуального доменного адреса или url отдельной страницы на рабочую версию. Редирект может понадобиться в связи с глобальным переносом сайта на другой домен, техническими изменениями в написании адреса, удалением страниц, необходимостью внутренней и внешней перелинковки. Один из вариантов использования перманентной переадресации – редирект с нескольких доменных имен, созданных в разных зонах, на один актуальный адрес. Грамотное использование редиректа позволяет перемещать контент без потерь в поисковой индексации, сохранить и даже увеличить прежний вес и позицию в выдаче.
Настроить код состояния HTTP 301 можно разными способами:
с помощью HTML и PHP;
через панель управления или плагины соответствующей CMS;
при помощи специальных скриптов (программ);
на уровне хостинг-провайдера;
Последний способ является наиболее простым и надежным. О нем чуть позже поговорим подробнее.
Альтернативные методы переадресации
В большинстве случаев постоянная переадресация является более правильным решением, чем временная. На практике это объясняется просто. Предположим, сайт сменил доменную зону, а затем еще и обзавелся защищенным протоколом https. При настройке временной переадресации в индексе Яндекса и Google по одним и тем же запросам появились три версии сайта с пропорциональным проседанием позиций в выдаче. После настройки редиректа 301 на приоритетный url произошло склеивание дублей, робот вернул сайт в топ выдачи.
Не рекомендуется использовать постоянный редирект при временном переносе сайта или наличии серьезных проблем со старым доменным именем. Если адрес забанен или попал под поисковую фильтрацию, смена дислокации с применением переадресации не поможет избавиться от этих ограничений.
В каких случаях используется постоянный редирект 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– очень важный способ поисковой и пользовательской оптимизации веб-ресурса. Использовать его следует с осторожностью. Неправильная настройка может привести к сбоям в работе сайта и потере поисковых позиций.
301 редирект: как создать и настроить
Привет дорогие читатели! В этом небольшом посте я расскажу про 301 редирект, потому что в процессе создания и продвижения сайтов каждому вебмастеру придется столкнуться с данным понятием.
Чтобы как-то упростить вам жизнь давайте узнаем, как сделать и настроить 301 редирект в htaccess и php фалах. Но обо всем по порядку.
Слово редирект происходит от английского «redirect», что в переводе обозначает переадресацию.
Если при запросе доступа к какому-либо сайту появляется это сообщение, то, скорее всего содержимое с этого адреса перенесено на другой постоянный ресурс.
Большинство пользователей интернета привыкли к сообщению 404 — адрес не существует или битая ссылка. Во избежание потери постоянных пользователей или новых интересующихся и делается 301 редирект.
Случаи, в которых необходимо настраивать переадресацию:
Как сделать 301 редирект — способ классический
Одной из самых простых конструкций создания 301 редиректа является использование файла HTACCESS.
Главным условием срабатывания команды является обязательное его местонахождение в корневой папке сайта. В этом же месте обычно располагается файл index.php.
В случае отсутствия такого файла его придется создать, обратив особое внимание на формат. Имя файла должно быть таким .HTACCESS (точку добавить нужно обязательно).
После проверки наличия такого файла можно приступать к созданию функции 301 редирект htaccess.
Расшифровывается данная комбинация так:
Аналогом такой команды является скрипт RedirectMATCH. Его целесообразно использовать в случае смены cms сайта.
Прописать нужно будет примерно следующее:
Стоит отметить, что использование такой команды обуславливается техническими возможностями месторасположения содержимого сайта (сервера или хоста).
В случае использования модуля apache способ редиректа через HTACCESS является наиболее удобным. Но все равно придется включить дополнительные модули mod_alias/rewrite. Включить их можно все в том же php.ini файле.
Главным недостатком такой команды является узкая направленность редиректа. Он рассчитан на переадресацию с главной страницы сайта.
Но что делать, если в поисковике были проиндексированы почти все страницы и посетитель обращается к другим страницам?
Естественно, перебрасывания не произойдет и перед соискателем появится ошибка 404. Чтобы довести скрипт перенаправления до ума придется прописывать редирект для всех возможных комбинаций адресов страниц старого сайта, проиндексированного поисковыми системами.
Проще говоря, для каждого адреса придется прописывать индивидуальный скрипт.
Для многих владельцев сайтов, перед которыми встает задача по установке редиректа, часто пренебрегают еще одним видом настройки – по HTML.
В пользовательской среде он считается не самым хорошим и потому используется редко. Больше всего это связано поведением поисковых машин при прохождении такого сайта.
Тем не менее, право на существование этот способ имеет, так как, поняв его суть можно пойти дальше, к более сложным и качественным решениям вопросов.
Итак, пример скрипта (мета-тега, располагающегося в коде шапки сайта):
Значение поля content будет отвечать за продолжительность задержки (в секундах) до переадресации. Соответственно в конец скрипта вписывается ссылка, куда необходимо перебросить пользователя.
Вся работа осуществляется в текстовом редакторе (блокноте). Полученный файл потом необходимо будет закачать в соответствующую область сайта.
Настройка редиректа на PHP сайтах
На самом деле 301 редирект php создается примерно по той же схеме что и HTACCESS. Работа по переадресации будет выполняться, если заранее прописать команду таким образом, чтобы посетителю сайта (пришедшему по старому адресу) отправлялись заголовки уже нового сайта.
Скрипт для внедрения такого типа переадресации следующий:
В соответствующие места представленного кода необходимо подставить соответственно новый адрес и подкаталог нового ресурса.
Как настроить 301 редирект на JavaScript (JSP) и ASP
Это метод IT-профессионалами, как и HTML, причисляется к простецким, и используется крайне редко. В случае с JavaScript негативное отношение связано с высокой вероятностью бана поисковыми машинами.
Дело в том, что роботы высчитывают различные скрипты накрутчиков посещаемости, вшитых кодов рекламы, или еще хуже, вирусной активности.
Комбинация JavaScript как раз похожа на эту категорию (для автоматов естественно).
Суть работы директивы сводится в передаче заголовков перед выдачей результатов запроса в поисковике.
Код скрипта для прописывания будет следующий:
Некоторые правила, которыми руководствуются опытные пользователи при написании директив редиректа 301:
• При использовании того или иного кода для работы переадресации необходимо убедиться в том, что сервер, где лежит содержимое сайта, поддерживает такую функцию;
• Для того чтобы снизить необоснованную нагрузку на хостинг, можно прописать перенаправление не через файл .HTACCESS, а путем редактирования файла hpptd.conf.
• После настройки директив редиректа необходимо убедиться в правильной работе всех прописанных скриптов. Для это проводят тестирование (посещение старого сайта).
Причем желательно обратиться по нескольким разделам и убедиться, что по всем старым запросам пользователь гарантированно будет перенаправлен на новый адрес ресурса;
• В принципе не возбраняется экспериментирование. Всегда можно попробовать путем проб и ошибок добиться необходимого результата.
Главное знать основы работы с сайтом и все эти манипуляции проводить в области демо-версии сайта (на своем жестком диске), а уж потом перезалить содержимое по ftp;
• Логично предположить, что использование нескольких типов переадресаций не совсем корректно. Поэтому перед настройкой именно 301 редиректа нужно вычислить (вспомнить) и удалить старые директивы.
На сегодня это все. Если есть вопросы по созданию 301 редиректа и его настройки, прошу задавать их в комментариях. Пока!
301 редирект в SEO
Редирект 301 или 301 Permanent Redirect — это правило, которое автоматически переадресовывает пользователя на другой адрес страницы. С его помощью вы можете склеить старые страницы с новыми или перенести сайт на другой домен, убрать многие дубли с сайта и многое другое. Крайне полезная вещь — поэтому нужно научиться делать его правильно!
Так же при 301 редиректе происходит склейка тИЦ (читаем что такое тиц) и PR — т.е. вы можете сохранить старое значение на новом адресе. Вы можете нисколько не потерять в глазах поисковых систем. Давайте перейдем от теории к практике.
Как настроить 301 редирект в htaccess
Все правила записываются в виде:
Теперь непосредственно займемся переадресацией и разберем конкретные примеры.
Я уже писал статью про склейку зеркал сайта, но на всякий случай здесь обобщу, чтобы вам было удобнее пользоваться страницей.
Примеры использования 301 редиректа
Редирект с index.php на главную
Чтобы настроить его вам нужно прописать в вашем файле следующий код, который будет перенаправлять посетителей с адреса site.ru/index.php на site.ru:
Склеиваем алиасы сайта
Если у вас несколько доменов и вы хотите все их перенаправлять на основной сайт, то используем:
Редирект с www на без www
Этот способ я уже описывал ранее, но повторюсь. Для того, чтобы склеить зеркала и выбрать основным домен без www прописываем:
Редирект с домена без www на домен с www
Это действие противоположное предыдущему, только основное зеркало здесь www.site.ru:
301 редирект страниц со слэшем и без
Это еще один вид дублей, тут мы склеим страницы site.ru/category/ и site.ru/category, как видите, в конце второго урла не стоит слэша:
Если вам нужно наоборот оставить слэш в конце урла, то вам нужен данный вариант:
Если у вас по какой-то причине появились урлы типа site.ru/category//article.html, то юзаем код:
где, «//» можно заменить на «—» или любые сдвоенные символы в урле.
Массовая замена категории
Бывает, что вы переименовали категорию, а за ней закреплены тысячи урлов. Чтобы не состарится во время написания тысяч одинаковых перенаправлений юзаем:
Если у вас категория идет сразу после домена (типа site.ru/category/), то используем другой вариант:
Редирект на новую страницу
Самый простой редирект со страницы на страницу, для это просто пропишите так:
Где old-post.html — это ваша старая страница, а new-site.ru/new-post.html — это новая страница и она может быть на любом домене (включая ваш текущий домен).
Редирект для url с параметрами
Страницы с параметрами редиректятся сложнее, возьмем пример http://site.ru/page.php?sort=articles. Параметр здесь «sort=articles». Код будет следующим:
Работаем с расширениями
Правильный 301 редирект на новый домен
Этот пункт я выделил отдельно, т.к. он больше связан с переносом на другой домен. Тут есть важный момент, это не упустить директиву по правке роботса — она указана на 3 строке кода.
С помощью таких не хитрых махинаций мы избавимся от дублей страниц, тем самым улучшив нашу внутреннюю оптимизацию и соответственно качество сайта.
Если у вас появились какие-то вопросы, пишите в комментарии — будем разбираться 🙂
Понравился пост? Сделай репост и подпишись!
Рекомендую к прочтению
Современная стратегия SEO продвижение
Исследование тошноты ключевых слов в Яндексе и Google
Грязные секреты планировщика ключевых слов в Google