Автоматический редирект (Auto Redirect) на PHP


Оглавление (нажмите, чтобы открыть):

Как сделать редирект (html,php,apache,nginx)

Всем привет! В этой статье хочу наглядно показать как можно сделать редирект ваших пользователей используя для этого PHP, Apache или Nginx.

Для начала стоит пару слов уделить определению того что такое редирект.
Редирект – это автоматическое (принудительное) перенаправление посетителей сайта с одной страницы на другую. Для того чтобы при перенаправлении пользователя он понимал куда и почему его перенаправили то нужно указывать состояние для веб страницы. О состоянии страницы говорит код статуса HTTP.

Редирект коды

Нас интересуют следующие статус-коды редиректов:

  • 300 — Multiple Choices (несколько вариантов на выбор давая возможность сделать выбор пользователю).
  • 301 — Moved Permanently (запрошенный документ перемещен на новый URI).
  • 302 — Moved Temporarily (временный редирект по другому URI).
  • 303 — See Other (затребованный ресурс можно найти по другому адресу).
  • 304 — Not Modified (содержимое не изменялось — это могут быть рисунки, таблицы стилей и т.п.).
  • 305 — Use Proxy (доступ должен осуществляться через прокси-сервер).
  • 306 — Unused (не используется, зарезервирован).

HTML редирект

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

Атрибут «content» – это задержка перед тем, как браузер перенаправляет на новую страницу, наше значение 0 секунд. Обратите внимание, что мы не должны устанавливать HTTP-код, но важно дважды проверить странное открытие и закрытие кавычек.

PHP редирект

Функция header () принимает 3 параметра. Первым мы указываем адрес куда нам нужно перенаправить пользователя, вторым мы указываем необязательный параметр replace, он указывает должен ли заголовок заменить предыдущий аналогичный заголовок или добавить второй заголовок того же типа. По умолчанию он заменяется, но если в качестве второго аргумента передается значение false, то можно задействовать несколько заголовков одного типа, а третьим мы задаем статус код который будет отправлен на страницу.

Apache редирект

Все изменения производятся в файле .htaccess.

Для работы перенаправления а apache должен быть включен модуль mod_rewrite.

Редирект при смене расширения файлов:

Если вы сменили платформу или CMS и при этом у url-ов изменились только расширение, вам может помочь этот редирект.

Редирект с www на обычный домен:

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

Благодаря этому все запросы на www.dmkweb.ru будут перенаправлены на dmkweb.ru.

Удаление лишних символов в url-е

Иногда в url-е могут появится ненужные элементы, в этом случаи поможет редирект 301:

Так же, можно возникнуть потребность заменить в url-е несколько дефисов на один:

Про редирект с http протокола на https я упоминал в своей недавней статье.

Nginx редирект

Перенаправлить пользователя с одного url на другой в nginx ещё проще чем на apache.

301 редирект с www на обычный домен

Про редирект с http на https для nginx я так же уже писал.

dmkweb.ru Права на контент защищены.

Подписаться на обновления блога

Все о редиректах

Собственно о «редиректах» и пойдет дальнейший разговор. Для начала определимся, что говорить мы будем о редиректах полезных — недавно я рассказал Вам как победить редирект с «ВКонтакте» на вредоносный сайт — это вредный редирект и с ними нужно бороться, а сейчас поговорим о том, как перенаправить пользователя с одного сайта (странички) на другую.

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

1. Самым простым редиректом является прямая ссылка на необходимый сайт. Выглядит это примерно так:

Файл index.html с таким содержимым будет содержать всего одну строку со ссылкой на новый адрес. Просто и. неудобно.

2. Автоматический редирект на PHP — одно из самых частовстречающихся заданий для веб-разработкчика. Для этого создаем текстовый файл, называем его например index.php и вписываем в него следующий код:

Здесь стоит упомянуть, что имя файлу со скриптом можно дать любое, но при этом возникает другая проблема — как показать пользователю этот файл? Есть несколько способов, но самым лучшим, как мне кажется, будет следующий: заходим на сервер в корневую папку сайта, удаляем из нее файлы типа index.php, index.htm. index.html — это файлы с которых начинается загрузка сайта, теперь наш файл со скриптом редиректа называем index.php и загружаем его на сервер в корневую папку сайта. Теперь этот файл будет автоматически запускать скрипт при входе на сайт. Но этот способ не всегда возможен — другие варианты должны рассматриваться предметно.

3. Следующий более продвинутый способ редиректа — с помощью java-скрипта с таймером. Для этого создаем текстовый файл, называем его например countdownRedirect.js и вписываем в него следующий код:

Это будет наш java-скрипт с редиректом. Цифра 1000 в самом конце скрипта определяетвремя таймера — в данном случае это 10 секунд. Теперь поработаем над основным телом страницы:

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

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

.htaccess ( hypertext access ) — файл дополнительной конфигурации веб-сервера Apache, а также подобных ему серверов. Позволяет задавать большое количество дополнительных параметров и разрешений для работы веб-сервера в отдельных каталогах (папках), таких как управляемый доступ к каталогам, переназначение типов файлов и т.д., без изменения главного конфигурационного файла. В общем выше дана ссылка на Википедию — там почитаете .

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

К примеру есть сайт www.kbaott.net Поисковики его знают, но домен kbaott.net без префикса www они считают другим доменом. В этой ситуации ссылки на данный ресурс с каталогов, других сайтов и т.д. имеют вид www.kbaott.net, а некоторые ресурсы ставят ссылку kbaott.net без www. Таким образом часть PR уходит на сайт без префикса, что не есть хорошо. С помощью 301 редиректа можно склеить домены, перенаправляя посетителей и роботов с простого сайта на сайт с www или на оборот. Теперь поисковики видят что это один и тот же домен и весь пиар будет ваш.

Для этого в файле .htaccess в корне сайта пропишите следующие строчки:

Здесь идет перенаправление с сайта с префиксом на сайт без www. Вместо приведенных адресов вставьте свои. Так же можете сделать .htaccess редирект наоборот, поменяв адреса сайтов в файле местами.

5. Вот мы и дошли до перенаправления пользователя на другой домен. Для того, что бы перенаправить посетителя на другой домен используем 301 редирект в .htaccess следующим образом:

В корень домена, который будем клеить к основному помещаем .htaccess с таким синтаксисом:

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

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

Статья подготовлена на основе материалов:

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

автоматическое перенаправление с index.php на другую страницу

как сделать автоматическое перенаправление с index.php на другую страницу, допустим в адресной строке пропишем 123.com а перенаправится на 123.com/view_cat.php?cat=2

но в адресной строке чтобы оставалось 123.com

такое вообще возможно сделать?

01.02.2012, 16:35

Переход на другую страницу из index.php
Здравствуйте, не могу понять как мне сделать переход на другую страницу. У меня в файле index.php.

Перенаправление на другую страницу
Доброго времени суток всем. Нужно что бы после выполнения скрипта выполнялся переход на другую.

Перенаправление на другую страницу
Добрый день! как сделать так, что когда пользватель заходит на сайте на определенную страницу, его.

Перенаправление на другую страницу
привет всем. имеется страница с товарами и ссылка на удаление, При удалении автоматически.

Все виды редиректов (html, js, php, htaccess)

Примеры редиректов или же перенаправлений на другую страницу.


Редирект в HTML

Редирект в JavaScript

Метод replace() позволяет заменить одну страницу другой таким образом, что это замещение не будет отражено в истории просмотра HTML-страниц (history) браузера

Метод reload() полностью моделирует поведение браузера при нажатии на кнопку reload в панели инструментов. Если вызывать метод без аргумента или указать его равным true , то браузер проверит время последней модификации документа и загрузит его либо из кеша (если документ не был модифицирован), либо с сервера. Такое поведение соответствует нажатию на кнопку reload . Если в качестве аргумента указать false , то браузер перезагрузит текущий документ с сервера. Такое поведение соответствует одновременному нажатию на reload и кнопки клавиатуры shift (reload+shift) .

Следующие примеры тоже перенаправят на google:

С помощью функции setTimeout возможно реализовать задержку переадресации перед выполнением редиректа (в примере — 5 секунд):

Простой пример редиректа с таймером:

Редирект в PHP

В php есть функция header() , которая разрешает не только подменять стандартные заголовки, но и добавлять новые.

Редирект HTML в PHP:

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

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

Редирект в .htaccess (RewriteEngine)

Необязательный параметр status — это три цифры — код редиректа (например, 301). Если не указан, то по умолчанию подставляется 302.

URL-path — часть запрашиваемого пользователем (или поисковиком) адреса, которая должна обязательно начинаться со слеша (/)

URL-to-redirect — полный адрес сайта (и, возможно, часть пути), на который будет осуществляться редирект. Должен быть вида http://site.ru/ — то есть обязательно должен присутствовать протокол (http://) и закрывающий адрес сайта слеш (/).

Если URL-path заканчивается не слешем, то редирект будет срабатывать только в случае точного совпадения запрошенного пользователем адреса и URL-path .

Если URL-path заканчивается слешем, то редирект сработает не только для указанного адреса, но и для всех, которые начинаются на указанный. А к URL-to-redirect будет добавлена часть адреса, следующая за последним указанным слешем в URL-path .

Действие директивы RedirectMatch аналогично Redirect , но в параметрах URL-regexp и URL-to-redirect можно использовать регулярные выражения.

У директивы RewriteRule более широкий спектр применения. Который, в числе прочих возможностей, разрешает ее использования и для редиректа — с указанием в конце строки в квадратных скобках [ ] флагов L (выполнить немедленно) и R (редирект).

301 редирект (redirect)

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

301 редирект или 301 redirect (от англ. перенаправление) — это принудительная переадресация пользователя с одного URL на другой. Причем оба адреса могут принадлежать как одному, так и разным доменным именам.

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

Что происходит в данный момент?

Происходит переадресация при помощи 301 редиректа. Действует это следующим образом.

Человек вводит в адресной строке URL адрес (или нажимает на гиперссылку);

Сервер получает запрос с URL адресом и начинает его обрабатывать;

В процессе обработки запроса «сталкивается» с инструкцией redirect и следует ее указаниям;

Отправляет пользователю новый URL адрес, который указан в инструкции и ответ 301.

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

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

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

Адрес страницы навсегда изменился, поэтому нужно перенаправить пользователей на актуальный URL;

Поменялся домен сайта, поэтому нужно переадресовать людей на новый домен;

Один и тот же материал имеет несколько URL адресов, то есть, дублей;

При работе online сервисов, форм, модулей и прочих интерактивных элементов сайта необходимо перенаправление.

Конечно, это неполный список того, как можно использовать 301 redirect, однако это основное.

Нужно понимать, что сделать 301 redirect со страницы возможно только при наличии доступа к этой самой странице. То есть, взять и прописать переадресацию для любого ресурса не получится. Именно поэтому, 301 редирект считается «официальным» перенаправлением, которое сделал владелец сайта.

Как сделать 301 редирект?

Создание 301 редиректа довольно простая задача. Тут нет запутанных алгоритмов и сложных структур. Необходимо лишь выучить синтаксис и понять несколько принципов работы.

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

301 редирект в .htaccess (Apache)

Создание 301 редиректа в файле .htaccess является самым популярным способом сделать переадресацию. Он достаточно прост и доступен всем пользователям, которые используют в качестве сервера Apache.

Файл .htaccess находится в корневом каталоге Вашего сайта. Попасть туда можно через FTP подключение или файловый менеджер, который доступен практически у всех хост-провайдеров.

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

Мы не будем подробно разбирать все инструкции файла .htaccess, рассмотрим только те, что касаются redirect 301.

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

Подготавливаем .htaccess к работе

Создаем или открываем уже существующий файл .htaccess. Прописываем в нем следующие строки:

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

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

RewriteEngine on

Данная запись позволит активировать модуль mod_rewrite.

Следующей строкой прописываем:

RewriteBase /

Подобная команда устанавливает базовый URL. Обычно это сам домен, примеру http://example.ru. Именно от установленного адреса мы и будем отталкиваться при дальнейшей работе.

Мастер Йода рекомендует:  Использование мета-боксов WordPress для создания SEO-плагина

Если Вы все верно прописали, то итогом будет вот такой файл:

Вот и все, наш .htaccess подготовлен для добавления перенаправлений.

Добавляем в .htaccess редирект

Существуют две основные инструкции, при помощи которых можно сделать перенаправление:

Redirect 301 — самый простой вид редиректа, предназначен для переадресации со страницы на страницу как внутри одного домена, так и в рамках нескольких доменных адресов. Работает с URL без параметров.

RewriteCond / RewriteRule — более гибкие и сложные правила переадресации. Обычно используются для массовых редиректов.


Теперь о каждом подробнее.

Redirect 301

Самая простая во всех смыслах инструкция. Ее синтаксис умещается в одну строку:

Между адресами всего один пробел. Никаких точек, дефисов и других сторонних символов.

Пример использования редиректа:

В файле это выглядит следующим образом:

Это все, что нужно знать о данной инструкции.

RewriteRule (RewriteCond )

Это составная инструкция, которая делится на 2 основные команды.

RewriteCond — Задает условие для следующей за ней директивы RewriteRule. Отдельно не применяется.

RewriteRule — Описывает правило изменения URL адреса.

Давайте сразу рассмотрим пример использования. Ниже присутствует часть файла .htaccess. Данный отрывок отвечает за 301 редирект с домена без WWW, на домен с WWW.

Будем разбирать по строчкам.

1 строка. Закомментированный текст. Комментарии в файле .htaccess начинаются с «#». На исполнение файла никак не влияет.

2 строка. Проверка наличия модуля mod_rewrite.

3 строка. Активация модуля mod_rewrite.

4 строка. Директива RewriteCond. Проверяет, есть ли «www» в начале адреса. Если нет, то срабатывает ниже расположенная RewriteRule.

5 строка. Директива RewriteRule. Переадресовывает на «www».

6 строка. Окончание контейнера проверки наличия модуля mod_rewrite.

Мы не будем подробно расписывать синтаксис и все возможные команды, которые применяются при работе с файлом .htaccess в данной статье, так как это очень глобальная и сторонняя от SEO тема. Примеры редиректов Вы сможете найти ниже.

301 редирект при помощи PHP

Помимо файла .htaccess, 301 redirect возможно сделать посредством php. Суть метода очень проста и задействует заголовки отправляемые сервером на запрос клиента.

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

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

Обратите внимание, что до вызова header, выводится ничего не должно, в противном случае Вы получите ошибку. Речь идет об «echo» или «print». Лучше всего размещать этот код в самом начале скрипта.

А вот вариант с сохранением всех параметров запроса и адреса страницы (то есть, домен будет изменен, а оставшаяся часть URL останется прежней):

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

301 редирект в Nginx

Мы не будем подробно рассматривать все нюансы настройки 301 редиректа в nginx, так как это очень глобальная и отдаленная от SEO продвижения тема. Рассмотрим лишь несколько самых популярных перенаправлений.

301 редирект с http на https для Nginx

Перевод сайта с http на https набирает все большую популярность. Сегодня защищенный протокол это не просто приятное дополнение, а банальная необходимость. Google уже не раз заявлял, что наличие SSL сертификата дает сайту преимущество в поисковой выдаче. После создания защищенного протокола Вам будет необходим редирект с http на новый https. Вот его пример для Nginx:

301 редирект с www на без www для Nginx

Если у Вас новый сайт, скорее всего, для него придется выбирать и устанавливать основное зеркало. В том случае, если основным зеркалом будет домен без www, Вам пригодится следующий редирект.

301 редирект с без www на www для Nginx

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

Редирект для одной страницы (Nginx)

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

Вариант для папки:

Редирект с одного домена на другой (Nginx)

301 редирект с одного домена на другой позволяет склеить сайты, а также передать «вес» (с точки зрения поисковой системы).

В server_name возможно указание алиасов и зеркал домена.

Редирект со страницы имеющей слэш в конце URL, на страницу без него (Nginx)

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

Редирект со страницы НЕ имеющей слэш в конце URL, на страницу со слэшем (Nginx)

Обратный от вышеуказанного редиректа.

Плагин для создания 301 редиректа

Если Вы используете популярную CMS, к примеру WordPress или Joomla!, то можете сильно упростить процесс создания 301 редиректа при помощи плагина.

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

Ниже мы подробно описали популярные плагины для основных систем управления контентом.

301 редирект в SEO продвижении

Именно благодаря SEO, 301 редирект приобрел свою относительную популярность (в сравнении, к примеру с 302). Он является одним из основных инструментов при работе с индексацией сайта, а также сильно помогает при изменении структуры ресурса. Ниже мы опишем четыре основные функции 301-го редиректа в поисковой оптимизации сайта.

Функция 1. Оставляем в поиске один URL адрес

301 редирект позволяет соблюсти один из основных постулатов SEO — «каждая страница должна быть доступна только по одному URL адресу».

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

Функция 2. Меняем структуру сайта без потери позиций

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

Только таким образом мы сможем «сказать» краулеру, что страницы навсегда переехали на новые адреса, которые нужно разместить в поиске. Старые URL при этом должны быть удалены из выдачи.

Функция 3. Склеиваем зеркала

С помощью постоянной переадресации возможно склеить зеркала сайта. Это могут быть как разные домены, так и «разновидности написания» одного и того же. К примеру, при создании защищенного протокола, необходимо выставить в Яндекс Вебмастере новое зеркало (рисунок ниже), которое будет отображаться в выдаче, а так же сделать 301 редирект с http на https.

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

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

Функция 4. Приводим URL адреса к единому виду

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


К примеру, у нас на сайте все URL имеют слэш в конце строки. При появлении адреса без слэша, с него автоматически делается переадресация.

301 редирект или rel=»canonical»

Как минимум в ряде случаев, атрибут rel=»canonical» считают альтернативной 301-у редиректу. Давайте разберемся, так ли это.

Напомним, что rel=»canonical» позволяет указать поисковой системе основной URL адрес страницы. Подробнее о данном атрибуте мы писали ранее.

Для начала нужно понять, в чем отличия данных методов. С этой целью мы создали следующую таблицу.

301 redirect rel=»canonical»
Передает «вес» страницы (с точки зрения SEO)? Да Нет
Пользователь (робот) видит старую страницу при обращении? Нет, происходит переадресация Да, видит
Обязательна ли инструкция к исполнению? Да Нет, на усмотрение робота
Виден ли пользователю? Да Нет, предназначен только для робота

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

Склейка зеркал при помощи 301 редиректа

Одна из основных функций 301 редиректа, без которой нельзя обойтись в SEO, это склейка зеркал.

Зеркалами для поисковой системы являются сайты с одинаковым контентом (или частичной копией контента) доступные по разным URL адресам. Как ни странно, практически у каждого сайта в Интернете есть зеркала. Все дело в том, что для поисковой системы домен с www и без www это разные адреса.

То есть, www.dh-agency.ru и dh-agency.ru для поисковика это различные URL, по которым доступен один и тот же контент. Этот случай настолько популярен, что в Яндекс Вебмастере есть раздел «Переезд сайта», где предоставляется возможность выбора основного зеркала, которое будет в поиске. Переадресация при этом, конечно, не появляется. Эта инструкция предназначена только для робота поисковой системы.

В случае с www, 301 редирект часто не ставится, так как домены признаются зеркалами автоматически. Хотя такая возможность есть, а иногда даже необходима. Про переадресацию с www на БЕЗ www мы рассказываем ниже.

Во всех остальных случаях для склейки понадобится переадресация.

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

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

Стоит сказать, что после данной процедуры ТИЦ , «ссылочный вес» и другие «пузомерки» будут перенесены на новый домен.

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

Разница между 301 и 302 редиректом

С точки зрения SEO 301 редирект кардинально отличается от 302. Даже несмотря на то, что их синтаксис очень схож, для поисковой системы они несут совершенно разный смысл. Вот их основное отличие:

301 редирект (Permanent Redirect) — постоянное перемещение страницы;

302 редирект (Temporary redirect) — временное перемещение страницы;

Из это вытекают все их различия и принципы использования.

301 redirect 302 redirect
Передает ссылочный вес да нет
Индексация старой страницы нет да
Наличие старой страницы в поиске нет да
Риск попасть под фильтры* минимален достаточно высок

Проще говоря, делая 301 редирект мы «говорим» поисковой системе о том, что про старый адрес можно забыть и весь материал теперь навсегда доступен по новому URL.

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

*Стоит сказать, что 301 и 302 редирект имеют различные степени риска попадания под фильтры поисковых систем за мошенничество. Безусловно, не нарушая никаких правил к Вам вряд ли будут применены санкции, однако мы все равно оценим риски. Так как 302 редирект часто используется в черном SEO, то риск при его использовании на порядок выше, нежели у 301 редиректа.

Когда оправдано использование 302 редиректа?

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

Есть Интернет-магазин одежды и Вам необходимо разместить обширную по объему акцию. Дорабатывать уже оптимизированную главную страницу ради недели распродаж смысла нету. Во-первых, это может сказаться на ее положении в поисковой выдаче. Во-вторых, это достаточно трудозатратно. Намного проще сделать 302 временный редирект на страницу с акцией. По окончанию которой, главная снова будет доступна в первоначальном виде.

Вы решили внести изменения в один из разделов сайта, но при этом не хотите терять пользователей которые заходят в него из органической выдачи. В этом случае грамотным решением будет сделать 302 редирект на похожий по смыслу раздел, в ожидании пока основной будет доделан. То есть, старый URL продолжит находится в поиске, при этом пользователи не будут видеть недоработанный раздел.

Нежелательно ставить 302 редирект на слишком длительный срок. Это может привести к тому, что поисковая система исключит из поиска старую страницу, по сути, превратив 302 редирект в 301.

301 редирект в популярных CMS

Вне зависимости от CMS сайта, Вы всегда можете создать 301 редирект при помощи файла .htaccess или php кода. Однако, для распространенных систем управления существуют плагины и модули, которые упрощают процесс создания перенаправления до нескольких кликов. Ниже мы описываем самые популярные плагины и модули для Битрикса, WordPress, Joomla!, Opencart и других распространенных систем управления.

301 редирект в Битрикс (Bitrix)

Для Битрикса существует множество дополнений в виде модулей. Для решения задачи по созданию 301-го редиректа был реализован модуль «Редирект мастер«. Как и множество других дополнений для Битрикса, он платный. Его стоимость на момент написания статьи — 5 000 рублей. Что довольно дорого, по нашему мнению.

Есть и более дешевый вариант — модуль с простым названием «Перенаправление ссылок«. Его стоимость в 5 раз меньше предыдущего, а функционал очень схож.

Модуль «Редиректор«, стоимостью 3 900 рублей на момент написания статьи, также очень схож с описанными выше.

Все эти модули позволяют настроить 301-й редирект для динамических URL, ЧПУ, адресов с параметрами, а также практически все, что можно сделать руками в .htaccess.

301 редирект в WordPress

Одно из преимуществ WordPress — наличие огромного количества готовых решений на все случаи жизни. Не стал исключением и 301 редирект. Для упрощения процесса создания переадресации существует множество различных плагинов. Мы рассмотрим два самых популярных.

Скачать данные плагины Вы можете совершенно бесплатно прямо из панели управления. Для этого переходим в «Плагины» -> «Добавить новый«. В строке поиска вводим название плагина и выбираем необходимый.

Плагин Redirection

В разделе «Добавить плагины«, после ввода названия в строку поиска, Вы увидите результаты, среди которых будет:

Далее нажимаем кнопку «Установить» -> «Активировать«.

После того, как Redirection будет активен, переходим в список всех плагинов, выбираем «Перенаправления/Redirection» и нажимаем «Настройки«. Сразу под названием плагина Вы увидите 7 вкладок:

Redirects. В данной вкладке представлены все имеющиеся редиректы. Ниже располагается блок «Add new redirection» (Добавить новый редирект).
Первое поле (Source URL) — то, откуда нужно сделать редирект.
Второе поле (Target URL) — то, куда нужно сделать редирект.
Group — группа, к которой будет относится переадресация.

Groups. Группы, на которые делятся редиректы. Не имеет отношения к массовым редиректам. Это просто сортировка.

Log. Логи или проще говоря, журнал в который записываются все события связанные с редиректами данного плагина.

404s. Те же логи, только для события 404.

Import/Export. Возможность импорта и экспорта редиректов.

Options. Основные настройки плагина.

Support. Раздел поддержки.

Для того, чтобы добавить редирект, переходим во вкладку «Redirections«, спускаемся к блоку «Add new redirection» и заполняем все необходимые поля (Source URL, Target URL, Group), нажимаем «Add Redirect» — готово. Теперь необходимо только проверить результат.

Плагин Simple 301 Redirects

Принцип установки точно такой же, как и у Redirection. В поиске плагинов необходимо найти:

После активации плагина, в левом меню WordPress в пункте «Настройки» появится ссылка «301 redirects«. Переходим по ней и попадаем на страницу с двумя полями.

Первое поле — откуда ставим редирект, второе — куда. Тут нет сложных настроек, все максимально просто.

301 редирект в Joomla!

Для создания 301 редиректа, в Joomla! 3 уже имеется стандартный компонент. Найти его можно развернув меню «Компоненты» — > «Перенаправление«.

После перехода Вы увидите все имеющиеся редиректы, если они есть.

Для создания нового, необходимо нажать на кнопку «Создать» и заполнить все обязательные поля (отмечены звездочкой).

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

Что делать, если 301 редирект в Joomla! не работает?


Если при использовании стандартного компонента перенаправлений в Joomla! 3, редирект так и не заработал, необходимо:

Открыть файл configuration.php находящийся в корневой папке Вашего сайта;

Найти переменную public $live_site;

Присвоить ей в качестве значения домен своего сайта.

Сохраняем изменения и проверяем редирект.

301 редирект в Opencart 2

Для Opencart 2 существует готовый модуль, позволяющий создавать постоянную переадресацию. Его название «Менеджер 301 редиректов«.

Он поддерживает всевозможные варианты 301-го редиректа и совместим со всеми версиями Opencart 2.x.

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

Не забывайте, что любая CMS система, в том числе и Opencart, поддерживает редиректы созданные вручную в файле .htaccess или посредством php вставки.

301 редирект в Modx

Для Modx Revo существует множество готовых решений реализации 301-го редиректа. Одно из них Redirector. Установка и использование данного расширения не составляет никаких сложностей. Если, все же, у Вас возникли трудности, Вы можете подробно изучить любой вопрос на официальной странице https://docs.modx.com/extras/revo/redirector.

Мастер Йода рекомендует:  Вы знаете, почему большинство целевых страниц не эффективны

301 редирект для Wix

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

Переходим в режим управления сайта;

Находим раздел SEO и переходим в него;

Пролистываем страницу вниз до блока «Переадресация: 301 редирект»;

Нажимаем «Настроить переадресацию»;

В соответствующие поля вводим старый и новый URL;

Нажимаем «Сохранить» и «Опубликовать».

Проверяем работоспособность переадресации.

Распространенные редиректы

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

301 редирект с http на https

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

Итогом данного редиректа будет являться добавление ко всем URL сайта протокола https.

301 редирект с www на БЕЗ www

Если в качестве основного зеркала сайта Вы выбрали домен без WWW, то Вам необходим соответствующий редирект. Его пример ниже.

Итогом данного редиректа будет являться «удаление» из всех URL адресов префикса «WWW».

301 редирект с БЕЗ www на www

Если в качестве основного зеркала был выбран домен с WWW, то Вам необходимо добавить ко всем URL соответствующий префикс «WWW». В этом Вам поможет указанный ниже редирект.

Итогом данного редиректа будет являться добавление ко всем URL адресам префикса «WWW».

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

Один из самых простых и распространенных редиректов. Умещается в одну строчку. Позволяет навсегда сменить URL адрес страницы, избавиться от дублей и старых материалов.

Итогом исполнения вышеуказанной инструкции будет являться постоянная переадресация со страницы /page-1/ на страницу /new-page-1/. При этом раздел /page-1/ будет исключен из поиска, а /new-page-1/ получит весь имеющийся «вес».

Обратите внимание, подобным образом возможно сделать переадресацию только для URL адресов без параметров. То есть, для страницы /page-1/?product >

301 редирект с домена на домен

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

Итогом вышеуказанного редиректа станет перенаправление всех обращений к domain1.ru на domain2.ru.

301 редирект для слеша (Удаляем слеш на конце)

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

Итогом будет являться «удаление» слэша в конце URL адреса.

301 редирект для слеша (Добавляем слеш на конце)

Обратный от ранее упомянутого редирект. Добавляет слэш в конце строки URL адреса.

Итогом будет являться «добавление» слэша в конце URL адреса.

301 редирект с index.php (html)

Во многих CMS системах, в том числе и популярных, при некорректной настройке URL, главная страница становится доступна как по доменному имени, так и по доменному имени + index.php (html). То есть, dh-agency.ru и dh-agency.ru/index.php ведут на одну и ту же страницу — главную. Для поисковой системы это дубли, поэтому от них нужно избавляться.

Пример 1, для index.php

Пример 2, для index.html

Итогом обоих примеров будет редирект с /index.php (html) на «корень сайта», то есть, просто на домен.

Массовый 301 редирект

Массовый 301 редирект используется, в основном, при смене структуры сайта, раздела или вида URL адреса. В отличие от единичных редиректов со страницы на страницу, он делается по определенному правилу, под которое подпадают все URL адреса, для которых необходимо перенаправление.

В некоторых CMS системах по умолчанию используется генерация 301-х редиректов для создания единого адреса с ЧПУ.

К массовым редиректам можно отнести большинство вышеуказанных примеров, так как их правила распространяются не на один URL адрес, а на все существующие или отобранную группу.

Редирект со страницы 404 Not Found

Создание редиректа с несуществующей страницы на главную (или любую другую) технически возможно. В этом нет никакой проблемы. Однако с точки зрения SEO это будет некорректно. При обращении к несуществующему разделу индексирующий робот должен получать соответствующий заголовок — 404. Только так он сможет корректно индексировать сайт. Кроме этого, поисковые системы не любят большое количество редиректов, поэтому их использование нужно сократить до минимума.

Пример 1. Редирект с 404 страницы на главную

Вот пример редиректа со всех не найденных страниц на главную.

Итогом данного редиректа будет являться перенаправление всех обращений к страницам 404 на главную страницу сайта.

Пример 2. Редирект с 404 страницы на главную через 301 редирект

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

Пример 3. редирект с 404 страницы на заранее подготовленную


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

Проверяем 301 редирект

После того, как Вы настроили 301 редирект, его необходимо проверить на корректность работы. Для этого введите в адресной строке своего браузера URL страницы, с которой была сделана переадресация. Если Вы видите новую страницу, то есть, ту, на которую делали редирект — то все корректно работает.

Для того, чтобы удостовериться, что сработал именно 301 редирект, необходимо перейти в Яндекс Вебмастер в раздел «Инструменты» — > «Проверка ответа сервера«.

В поле «Опрашиваемый URL» необходимо ввести адрес страницы, с которой Вы делали перенаправление. Итогом проверки должен быть код статуса HTTP «301 Moved Permanently«

В случае, если при обращении к старой странице перенаправление не происходит или код статуса HTTP не «301 Moved Permanently» — проверьте корректность настройки редиректа.

Что делать, если 301 редирект не работает?

Мы не в силах перечислить все причины, по которым может не работать 301 редирект, но отметим самые распространенные. Вот список проблем, из-за которых чаще всего не работает переадресация:

Синтаксические ошибки

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

Использование URL адреса с параметром

Умещающийся в одну строчку «упрощенный» вариант редиректа в файле .htaccess вида:

Работает исключительно с URL адресом без каких либо параметров. То есть, такая команда работать не будет:

А вот такая, будет:

Для переадресаций с префиксами в URL (в нашем случае «?product >

Некорректное расположение

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

Отключен модуль mod_rewrite

При создании переадресации в файле .htaccess убедитесь, что у Вас подключен и активирован модуль mod_rewrite. Подробнее об этом мы писали Выше.

Некорректная настройка плагинов

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

Какой он — правильный 301 редирект?

Правильный 301 редирект отвечает всем нижеперечисленным требованиям:

Ведет на страницу без последующих перенаправлений. То есть, если Вы сделали редирект со страницы А на страницу Б, то с последней (Б) уже не должно быть никаких переадресаций. Она должна быть конечной точкой, куда попадет пользователь;

Переадресовывает на страницу, код ответа которой 200 ОК. То есть, проще говоря, на существующий и доступный раздел. Неприемлемо делать перенаправление на несуществующую или ограниченную в доступе страницу;

Сделан без синтаксических и логических ошибок;

301 redirect выбран осознанно. Убедитесь, что Вам нужен именно он, а не 302-ой или 307-ой. Выбор типа переадресации очень важен, ведь с точки зрения SEO, разница между ними глобальна;

Был сделан сознательный выбор между атрибутом rel=»canonical» и перманентным редиректом. Не стоит делать переадресации когда попало;

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

Как убрать 301 редирект?

Если Вам необходимо убрать 301 редирект, происхождение которого неизвестно, то придется сделать несколько достаточно простых шагов. Что бы их выполнить потребуется доступ к CMS, корневому каталогу сайта и поверхностные знания php/html.

Шаг 1. Определяем откуда и куда сделано перенаправление

Априори считается, что если человек хочет убрать редирект, то он знает откуда и куда он ведет. Скорее всего так и есть. Просто напомним, что в Яндекс Вебмастере есть раздел «Страницы в поиске» -> «Исключенные страницы«, где возможно увидеть все непопавшие в индекс URL, в том числе и по причине редиректа.

Шаг 2. Определяем тип перенаправления

Чтобы убедиться, что срабатывает именно 301 редирект, необходимо зайти в «Яндекс Вебмастер» — > «Инструменты» — > «Проверка ответа сервера«. В поле «Опрашиваемый URL» вводим адрес страницы, с которой происходит переадресация. Результатом проверки должен стать код «301 Moved Permanently«;

Шаг 3. Выясняем, каким образом сделан редирект

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

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

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

В случае использования популярной CMS, такой как WordPress или Joomla!, необходимо будет проверить настройки всех плагинов, которые отвечают за 301 редирект. Подробнее о стандартных решениях для распространенных CMS.

Шаг 4. Избавляемся от переадресации

Теперь осталось самое простое — убрать переадресацию. Для этого просто удаляем код, который отвечает за 301 редирект. В случае, если используется плагин, возможна простая деактивация в один клик.

Автоматический редирект дублей страниц либо на .htaccess либо на PHP

Добрый день! Проблема достаточна частая, так как в URL файла можно дописывать кучу всякого мусора по типу ?и_так_далее_что_хочешь_и_сколько или #это вообще трэш: тут можно все что угодно в URL писать и наконец-то самый ужасный /и_тут_тоже , даже если это файл а не директория.

Задача: Перенаправлять пользователя на оригинал если он написал ? или / после URL.

№1: /en/ – главная, но можно попасть на ту же страницу написав такое: /en// или больше слэшев в конце.

Настройка 301 редиректа в файле .htaccess и другими способами

Содержание:

Во время работы с сайтом может возникнуть ситуация, требующая создания автоматического перенаправления с одного url-адреса на другой, которые принято называть словом «редирект». Это часто происходитит при переезде ресурсе на новый домен, при переходе на обновлённый адрес, а также изменении адресов страниц. Чтобы пользователи смогли найти страницу по новому адресу, их должно автоматически «перекидывать» со старого адреса на новый.

Правильно сделать такое перенаправления поможет постоянный редирект или 301 Redirect. Что это такое и как настроить расскажем в этой статье.

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

Редирект — это процесс, при котором пользователь перенаправляется с неактуальной страницы на актуальную. Это может быть http и https или адрес с/без www. Редирект может выполняться как на сервере, так и в браузере. Но первый вариант считается предпочтительным, так как серверный редирект не замедляет загрузку страниц.

Permanent Redirect 301 («301 редирект», «постоянный редирект», «код состояния HTTP 301» или «301 редирект страницы») – один из двух наиболее распространённых видов редиректа, наряду с Temporary Redirect 302. Этот ответ сервера на запрос браузера или поисковой системы означает, что произошла перманентная переадресация страницы. Она больше не доступна по текущему адресу, так как переместилась на новый адрес навсегда. Её прежний url стал недействительным, а вес с него переместился на новый адрес.

Для чего он нужен

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

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

  1. Переезд сайта на новый адрес. Нужно настроить перенаправление, чтобы все запросы к old_site.com перенаправлялись на new_site.com .
  2. Установка SSL-сертификата. Чтобы запросы к страницам, которые начинаются на http, перенаправлялись на адреса с префиксом
  3. Смена URL страницы. Это может быть связано с переходом на другую CMS или SEO-оптимизацией. Нужно, чтобы с example.ru/1hdkr5 был настроен редирект на example.ru/page_adress .
  4. Перенос разделов на субдомены. Было www.example.ru/example , а нужно example.site.ru .
  5. Для аккумуляциитрафика с онлайн-бренда, расположенного в разных доменных зонах. Вебмастер покупает домены example.com , example.ru , example.net , example.org и example.biz и на четырех последних сайтах настраивает редирект на example.com .
  6. Для быстрого перехода пользователя на мобильную версию ресурса со смартфонов и планшетных устройств.

Способы настроить редирект 301

  • Плагины для CMS. Особенно часто данный способ применяется для настройки 301 редиректа в WordPress.
  • Настройка через PHP. Редирект осуществляется через задания дополнительного условия в PHP-скрипте. При обращении к корневому файлу php браузер получает указание открыть одну страницу вместо другой.
  • Настройка при помощи HTML. Используется в случае, если необходимо изменить лишь одну страницу на статическом сайте. Редирект происходит путём добавления специальной метки (тега), в заголовок html-документа.
  • JavaScript — операция через браузер. Скрипт загружается в ПО, это более медленный способ. Работает только при включенном JavaScript в браузере. Используются преимущественно для редиректа с задержкой, когда сначала посетитель сайта видит страницу с обратным отсчетом и текстом. Для настройки в тег добавляется скрипт.
  • Изменение файла .htaccess, отвечающего за дополнительную конфигурацию в серверах на Apache. Удобнее всего это сделать через панель управления хостингом.

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

Настройка 301 редиректа в .htaccess


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

Для настройки 301 редиректа в файле .htaccess чаще всего применяют одну из трёх директив: Redirect, RedirectMatch или RewriteRule. Директивы относятся только к папке, где размещен .htaccess, а оттуда распространяются на дочерние папки.

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

Предварительная подготовка

  1. Для создания 301 редиректа перейдите в панель управления вашего сайта.
  2. Проверьте наличие .htaccess файла в корневом каталоге сайта ( public_html ). Если файл отсутствует, создайте его.
  3. Рекомендуем все условия редирект записывать в блоке IfModule дабы избежать ошибок при выполнении файла htaccess.
  4. Перед тем как начать прописывать правила перенаправления, необходимо включить механизм преобразований (RewriteEngine), при помощи команды:
  5. Хостинги применяют по умолчанию 302 или любой другой 3xx редирект, В связи с этим в правилах используются флаги. Рекомендуем дописывать в своих правилах [R=301,L].

Далее разберём наиболее распространенные варианты 301 редиректа через .htaccess.

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

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

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

Если изначально в индекс поисковой системы попала версия «с www», в файл .htaccess добавляется редирект на «без www»:

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

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

Для всего сайта

В случае перехода на защищенный протокол https для всего сайта, необходимо настроить перенаправление с http на https, для этого в файл .htaccess добавьте:

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

Если циклическое перенаправление на страницах осталось, попробуйте такой вариант:

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

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

Постранично

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

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

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

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

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

Мастер Йода рекомендует:  Как создать новый счетчик Яндекс.Метрики.Метрика

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

В том случае если необходимо перейти на другой домен, при этом сохранив SEO позиции, в файл .htaccess прописывают следующее:

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

Иногда возникает ситуация, когда необходимо изменить url страницы, то есть перенести данные с одной страницы на другую страницу, при этом не потеряв SEO значения. В этом случае в файл .htaccess прописывают следующее:

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

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

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

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

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

Для избегания дублей в файле .htaccess используют следующую конструкцию:

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

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

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

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

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

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

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

Финальный вид файла .htaccess

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

Постоянный редирект для Nginx

Этот веб-сервер наиболее часто используется в VPS-хостинге в связке с сервером Apache. В нем 301 редирект настраивается добавлением строк в конфигурационном файле nginx.config в секции server.

C www на без www

Без www на с www

После сохранения изменений в файле нужно перезапустить сервер выполнением команды « service nginx restart ».

Редирект для PHP

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

  1. Загрузите файл index.php на жесткий диск.
  2. Сгенерируйте код.
  3. Вставьте код в текстовый файл, сохраните его и загрузите на сервер.
  4. Укажите основной URL в настройках сайта.

Редирект 301 в разных панелях управления хостингом

Cpanel

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

  • в строке «Тип» выбрать «Постоянный 301»;
  • в строке «https://www» из выпадающего списка выбрать домен сайта (например, example.ru);
  • в строке «Перенаправляет на» указать для домена адрес http://example.ru;
  • в блоке «Перенаправление www» поставить галочку напротив «Перенаправлять только с www»;
  • сохранить изменения кликом на «Добавить».


ISPmanager

В этой панели можно править файлы nginx.config или .htaccess, но есть в панели и встроенный механизм переадресации. Например, для настройки редиректа на https/http, нужно снять галочку с соответствующего пункта в разделе «WWW-домены».

Особенности редиректа для популярных CMS

WordPress

Для самой массовой CMS существуют десятки плагинов для создания постоянного редиректа. Наиболее популярные среди них: Redirection, Simple 301 Redirects, Quick Page, SEO Redirection и Safe Redirect Manager.

Для примера, разберём перенаправление через плагин Redirection. Его настройка производится через консоль сайта во вкладке «Инструменты» или через раздел плагинов. Чтобы сделать переадресацию, достаточно заполнить два поля — Source URL и Target URL. Соответственно, в первой графе будет указан старый адрес, во второй — новый, без или с www.

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

OpenCart

Для Opencart редактируется файл .htaccess. Код переадресации выглядит так:

Битрикс

Для перенаправления на новую страницу достаточно отредактировать файл .htaccess, внеся в него такой редирект:

Joomla

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

MODX

Для гибкой настройки переадресации стоит использовать плагин Redirector.

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

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

Серверы для генерации кода

  • Seomagnifier — 301 для www.
  • 301 Redirect Code Generator Tool — для доменов и страниц.
  • Generate .htaccess— для страниц, разделов сайтов, доменов.

Циклическое перенаправление

Одна из самых распространённых проблем при настройке 301 редиректа — вероятность создания не одинарного перенаправления, а целой цепочки редиректов. Это может быть вызвано некорректной настройкой файла .htaccess, плагина CMS или прямым действием вируса. В очень вероятной перспективе такие «цепочки» приводят к появлению циклического редиректа — ошибки с кодом «ERR_TOO_MANY_REDIRECTS».

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

Можно также установить специальные браузерные расширения для Google Chrome и Mozilla Firefox.

Действия при циклическом редиректе

  1. Если ошибка возникла в процессе настройки. Следует проверить корректность соблюдения правил работы 301 редиректа для конкретных адресов, по которым выдаётся ошибка.
  2. Если циклический редирект вызван вирусом. Когда зацикливание возникает при попытке открыть любой адрес на сайте, выход может быть один — откат к последней работоспособной версии, сохранённой в бекапе.
  3. Если зацикливание вызвано слишком длинной цепочкой редиректов (более пяти). Нужно сократить цепочку перенаправлений до одного шага.

Как узнать, что переадресация работает правильно

Проверить редирект лучше всего обычным тестированием. Нужно ввести в адресную строку браузера www.example.ru и нажать Enter. Если все правильно, то должен открыться сайт по адресу example.ru.

Для более точной информации можно использовать онлайн-сервисы отслеживания. С ними можно работать «в 1 клик» — достаточно просто вставить ссылку на интересующую страницу.

Для примера, разберём работу в сервисе Redirect Checker. После ввода ссылки перенаправления при нормальной работе внизу появится надпись «Everything seems to be fine», то есть «все работает». Сервис автоматически проверит редирект и сообщит, если он работает некорректно. Если переадресация не действует, пользователь увидит такие сообщения: «Редирект для домена больше не работает» или «Перенаправление не настроено».

Заключение

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

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

Чтобы сайт после редиректа не только открывался по нужному адресу, но и работал без сбоев, ему нужна надёжная хостинг-площадка. Размещайтесь на VPS от Eternalhost, чтобы забыть о технических сложностях и полностью сосредоточиться на развитии своего интернет-ресурса!

Редирект на https для разных хостингов (код для htaccess 301 редирект)

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

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

Основы перевода на https и какие проблемы могут быть

Невозможно сказать, что придется делать с тем или иным сайтом для перевода на https, так как у всех в процессе перевода взникают разные неприятности. Как правило хороший сайт, с правильно сделанным шаблоном требует минимального вмешательства и достаточно просто заменить ссылки в базе данных на https (это делается только в случае если на сайте используются абсолютные ссылки когда все указывается с протоколом http), указать ссылку на карту сайта в robots и настроить 301 редирект на https всех страниц в htaccess, не забывая при этом сделать исключение для robots.txt что бы он был доступен по обоим протоколам и http и https как того требудет яндекс.

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

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

Что бы не писать коды в самой статье мы все занесли в txt файл который откроется без проблем на любом устройстве. В файле представлены коды редиректов для таких хостингов как: webhost1 (вебхост1), 1gb (1гб), mchost, timeweb (таймвеб), sprinthost (спринтхост), nic (ник), shneider-host, zomro, sweb, link-host, jino, beget, hostia, masterhost, hostland.

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

Имя файла: Коды редиректов на https

Как проверить сайт после перевода и редирект на https

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

  1. Покупка и установка ssl сертификата на хостинге. Многие хостинги предоставляют бесплатные ssl сертификаты которые ставятся просто нажатием кнопки.
  2. Без включения редиректов проверить сайт что бы он был доступен по протоколу https. Делается это для того что бы сайт оставался работоспособным на время перевода на https, так как на многих сайтах пока не внесешь изменения в конфигурационные файлы все скрипты, стили и картинки грузятся по http и соответсвенно сайт выглядит ужасно. Что необходимо менять зависит от движка и есть такие где обязательно необходимо править конфиги, а есть где сайт идеально работает и достаточно просто установить редирект и настроить robots и карту сайта.
  3. После того как привели в порядок и все скрипты и стили подключены как положено по https обязательно проверьте ссылки в базе данных, что бы они были с https, так как если этого не сделать, то некоторые страницы сайта всегда будут отвечать редиректами для поисковиков. Объясняется это тем что поисковики гуляют по сайту и переходят по ссылкам и если они в меню, и других местах сайта стоят без https то всегда будет осуществляться редирект на https который Вы позже установите в htaccess. На многих движках ссылки в базе данных хранятся в относительном виде без указания протокола и домена, там где они сохраняются в абсолютном виде можно произвести замену ссылок выгрузив базу данных или если позволяет cms найти соответствующий плагин для поиска и замены ссылок в базе данных.
  4. После того как все заменили и Ваш сайт открывается по https без каких либо предупреждений в браузере и консоли можно отредактировать карту сайта. Если у Вас карта динамическая генерируемая движком как правило все ссылки в ней уже будут с https, но на некоторых движках необходимо в настройках указать тип протокола при генерации карты.
  5. Редактируем robots.txt добавляя в него https в ссылку на карту сайта. Секцию host отменили давно по этому у кого она есть можете удалить.
  6. Далее установливаем редирект в файл .htaccess который подходит для Вашего хостинга.
  7. Проверяет корректность работы редиректа на https и для этого в поиске пишем site:adres-vachego-site.ru (после : пишите адрес Вашего сайта). В поиске Вы увидите все страницы Вашего сайта без https и при клике на любую из них у Вас должен сработать редирект на https. Обязательно проверьте в любом инструменте к примеру «ответ сервера яндекс» корректность редиректа. Для этого отройте его и установите ссылку на Ваш сайт с http:// и нажмите проверить. Редирект должен быть именно 301 который говорит поисковикам о смене адреса страницы. Бывают такие хостинги которые ошибочно ставят 302 редирект который говорит о временном перемещении страницы, Вам нужен именно 301.
  8. Далее идем в яндекс вебмастер и в разделе индексирование — переезд сайта делаем переезд на https. Добавлять www или убирать решайте сами. Но не забудьте что если Вы добавляете www или убираете в htaccess так же должен быть код редиректа с www либо не без него, что бы сайт всегда был доступен только по одному адресу. Когда Вы подадите заявку яндек покажет сообщение.
  9. В google вебмастере нужно просто добавить сайт с https и соответственно карту сайта. Старый с http позже можно будет удалить.

Если вдруг Вы столкнетесь с труностями при переводе пишите мы постараемся Вам помочь.

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

Если Вам попадется хостинг для которого у нас нет кода редиректа напишите нам и мы внесем его в список.

Редирект на PHP

Редирект — это автоматический переход на определённую страницу. Обычно это переходы внутри сайта, но можно перейти и на другой сайт. Достаточно часто возникает необходимость сделать редирект на PHP. Например, это бывает нужно, когда сам скрипт не возвращает страницу, а выполнив какие-то действия, перенаправляет пользователя на существующую страницу сайта. Кроме того, бывает нужно в зависимости от результатов вычислений открыть ту или иную страницу. Редирект на PHP выполняется при помощи заголовка Location. Пример:

При редиректе можно указывать как относительный, так и абсолютный путь к файлу.

Напомню, что заголовки должны идти в коде программы раньше отправки данных. Это значит, что редирект может находиться в середине или даже в конце скрипта, но он должен идти до любых HTML тэгов, а также конструкции echo , функции print_r() и подобных функций, формирующих ответ сервера.

Коприрование материалов сайта возможно только с согласия администрации

Переадресация страницы (редирект js, редирект html)

Редирект может быть использован для перенаправления посетителей сайта с одной страницы на другую. При редиректе с помощью ява скрипт используются методы объекта location :

1. Метод replace() позволяет заменить одну страницу другой таким образом, что это замещение не будет отражено в истории просмотра HTML-страниц (history) браузера, и при нажатии на кнопку Back, из панели инструментов, пользователь всегда будет попадать на первую загруженную обычным способом страницу.

2. При изменении свойств location также происходит перезагрузка страниц, но в этом случае записи об их посещении в history пропадают.

3. Метод reload() полностью моделирует поведение браузера при нажатии на кнопку reload в панели инструментов. Если вызывать метод без аргумента или указать его равным true, то браузер проверит время последней модификации документа и загрузит его либо из кеша (если документ не был модифицирован), либо с сервера.
Такое поведение соответствует нажатию на кнопку reload.

Если в качестве аргумента указать false, то браузер перезагрузит текущий документ с сервера. Такое поведение соответствует одновременному нажатию на reload и кнопки клавиатуры shift (reload+shift).

Переадресация страницы через Meta теги HTML

Здесь 1 — время задержки в секундах.

Примеры скриптов для переадресации страниц

Теперь,на основании всего вышеизложенного, приведём примеры javascript redirect т.е. переадресации:
Следующий код вставляется в раздел HEAD документа HTML:

Теперь, надо предусмотреть случай если у клиента отлючен ява скрипт
Для этого ипользуем теги в которых применяем переадресацию с помощью метатэгов HTML.
Для задержки самого редиректа используется фунция setTimeout() в ней 5000 — обозначает изменить текущий адрес страницы через 5 секунд (5000 миллисекунд) Пока будут идти эти 5сек Вы можете вывести пользователю какое либо сообщение типа: «Подождите 5 сек или перейдите по этой ссылке.»

Иногда бывает необходимо сделать редирект с таймером прямого или обратного отчёта времени и его выводом на экране во время задержки javascript редиректа.
Сделать это можно с помощью функции setTimeout() следующим образом: мы будем через неё рекурсивно вызывать функцию котороя через 1 сек будет уменьшать или увеличивать значение которым изначально была инициализирована переменная.
А значение этой переменной мы будем показывать пользователю.

Ваши вопросы присылайте по адресу mailto.jsbeginning@gmail.com они, вместе с ответами, будут опубликованы на сайте.
Укажите к какому разделу сайта относится Ваш вопрос также Ваш ник или имя.

Полезные бесплатные видеокурсы: Полезные бесплатные видеокурсы://

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