Как сделать редирект рубрики на страницу. Внесу некоторую ясность в непонятную абракадабру. Для чего он нужен

Как сделать редирект рубрики на страницу. Внесу некоторую ясность в непонятную абракадабру. Для чего он нужен

26.02.2019
Что такое 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. Именно от установленного адреса мы и будем отталкиваться при дальнейшей работе.

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

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

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

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

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

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

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

Redirect 301

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

Redirect 301

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

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

Redirect 301 /old-page.html http://example.ru/new-page.html

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

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

RewriteRule (RewriteCond)

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

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

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

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

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

# BEGIN WordPress RewriteEngine On RewriteCond %{HTTP_HOST} ^([^www].*)$ RewriteRule ^(.*)$ http://www.%1/$1

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Плагин 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, поддерживает редиректы созданные вручную в или посредством .

    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

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

    RewriteCond %{HTTPS} !=on RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1

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

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

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

    RewriteCond %{HTTP_HOST} ^www\.(.*)$ RewriteRule ^(.*)$ http://%1/$1

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

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

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

    RewriteCond %{HTTP_HOST} ^([^www].*)$ RewriteRule ^(.*)$ http://www.%1/$1

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

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

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

    Redirect 301 /page-1/ http://mysite.com/new-page-1/

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

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

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

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

    RewriteEngine On RewriteCond %{HTTP_HOST} domain1.ru RewriteRule (.*) http://domain2.ru/$1

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

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

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

    RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} ^(.+)/$ RewriteRule ^(.+)/$ /$1

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

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

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

    RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_URI} !(.*)/$ RewriteRule ^(.*[^/])$ $1/

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

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

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

    Пример 1, для index.php RewriteCond %{THE_REQUEST} ^{3,9}\ /index\.php\ HTTP/ RewriteRule ^index\.php$ http://сайт/ Пример 2, для index.html RewriteCond %{THE_REQUEST} ^{3,9}\ /index\.html\ HTTP/ RewriteRule ^index\.html$ http://сайт/

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

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

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

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

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

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

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

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

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

    ErrorDocument 404 http://www.site.com/301.html

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

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

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

    ErrorDocument 404 http://www.site.com/301.html RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule 301.html http://www.site.com/

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

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

    ErrorDocument 404 /404.html

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Редирект 301 - Здесь, на самом деле, все не так сложно, как может показаться.

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

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

    Все, что вам нужно, это доступ к файлу.htaccess, и возможность редактировать и загружать этот файл на сервер (возможно, загружать его и не придется, так как многие сервера поддерживают cPanel, которая позволяет редактировать файл.htaccess непосредственно на сервере).

    Зачем делать редирект 301?

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

    1. Изменение имени файлов и/или их расширений: редирект 301 может быть использован, когда вы хотите изменить файловую структуру вашего сайта или изменить расширения файлов (например, переход от html к php)..html, будут перенаправлены на сайт/newfile.php или ту страницу, которую вы укажете в.htaccess.

    2. Переезд на новый домен : редирект 301 – это ключевой момент при изменении доменного имени. Когда пользователи будут переходить на страницы на вашем старом домене, их автоматически будет перенаправлять на новые страницы на новом доменном имени..html, он будет автоматически перенаправлен на newdomain.com/page1.html.

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

    4.Партнерские ссылки: редиректы также обычно используются для , что может увеличить активность пользователей, и позволит не использовать прямые исходящие ссылки на партнерские программы. Вы создаете страницу с соответствующим названием файла, и применяете к ней перенаправление 301 на партнерский сайт. Например, вместо размещения прямой ссылки на partnerkaprimer.com/affiliate-offer.html, вы создадите страницу на своем сайте с именем файла “merchantxyz.html”, и при переходе пользователей на эту страницу vashdomen.ru/click/merchantxyz.html, они автоматически будут перенаправляться на partnerkaprimer.com/affiliate-offer.html. Как правило, вам ещё нужно добавить атрибут к ссылке на вашу страницу merchantxyz.html, чтобы партнерская ссылка не индексировалась.

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

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

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

    Пример 1. Вы изменили имя одного из файлов на сайте.

    Старое имя файла /oldpage.html, новое — /newpage.html. В файле.htaccess вам нужно прописать такой код:

    redirect 301 /oldpage.html http://www.vashdomen.ru/newpage.html

    Пример 2. Вы заменили.html страницу на.php, но имя оставили то же.

    Старое имя файла /yourpage.html, новое — /yourpage.php. Код практически идентичный предыдущему, только меняем расширение:

    redirect 301 /yourpage.html http://www.vashdomen.ru/you-page.php

    Допустим партнерская ссылка такая — partnerkaprimer.com.com&affid=64564242. Честно говоря, такая ссылка вряд ли внушает спокойствие и доверие пользователей. Сначала стоит создать страницу /merchant-offer.html на вашем сайте, с которой мы будем перенаправлять пользователей на партнерское предложение. Теперь осталось разместить ссылку на страницу vashdomen.ru/merchant-offer.html и не забыть об атрибуте rel=”nofollow”. Также можно оформить ссылку в виде кнопки или изображения. В файле.htaccess вам нужно прописать:

    redirect 301 /merchant-offer.html http://www.merchantdomain.com&affid=64564242

    Пример 4. Перенаправление с домена с www на без:

    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^www.vashdomen.ru
    RewriteRule ^(.*)$ http://vashdomen.ru/$1

    И наоборот:

    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^vashdomen.ru
    RewriteRule (.*) http://www.vashdomen.ru/$1

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

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

    Самый главный файл .htaccess располагается в корне сайта:

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

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

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

    Чтобы иметь возможность работать с редиректами нужно включить модуль ReWriteEngine . Для этого необходимо прописать две строчки кода (желательно в самом верху файла .htaccess ):

    Options +FollowSymLinks RewriteEngine On

    Разместите эти строки в самом верху файла .htaccess , чтобы иметь возможность работать с директивами модуля mod_write.

    Также на хостинге должны быть включены модули mod_alias (для поддержки Redirect, RedirectPermanent и RedirectMatch).

    1. Правила Redirect, RewriteRule и RewriteCond 1.1. Директива Redirect

    Синтаксис Redirect :

    Redirect /откуда http://куда_полный_адрес

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

    В status пишут код редиректа. Является необязательным параметром. Чаще всего пишут 301, что сигнализирует о постоянном смене адреса страницы.

    Важно, чтобы страница "откуда" была прописана в формате без указания полного адреса сайта, но с указанием полного относительного адреса URL начиная со слэша "/" (т.е. с корня сайта). Страницу куда идет редирект нужно писать полностью, т.е. абсолютный адрес страницы URL (т.е. с названием домена и протокола http или https).

    Например

    Redirect 301 /oldpage.php http://site/newpage.php

    Можно также писать по другому

    RedirectPermanent 301 /oldpage.php http://site/newpage.php или Redirect permanent 301 /oldpage.php http://site/newpage.php 1.2. Директива RewriteRule

    Директива RewriteRule устанавливает правила перехода. Синтаксис следующий:

    RewriteRule Шаблон Подстановка [коды]
    • При внешнем редиректе меняется урл адреса в строке браузера - " "
    • При внутреннем - не меняет урл адреса в строке браузера - " " или "[L] "
    1.3. Директива RewriteCond

    Директива RewriteCond определяет условия при котором выполняется правила в RewriteRule.

    RewriteCond Сравниваемая_Строка Условие

    Например, этими условиями могут быть браузер пользователя, IP-адрес , заголовок и т.д.

    1.4. Директива RedirectMatch

    Директива RedirectMatch аналогична Redirect с той лишь разницей, что позволяет записывать регулярные выражения.

    RedirectMatch Откуда Куда 2. Примеры 301 редиректов в.htaccess

    Мы уже рассматривали множество примеров с редиректом по .htaccess в статьях:

    • Смена адреса сайта - редирект со старого домена на новый

    Здесь мы дополним варианты редиректов, которых еще не было.

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

    Редирект с site.ru/cat/oldpage на site.ru/newpage.html

    RewriteRule ^cat/oldpage.* /newpage.html

    Или второй вариант:

    Redirect 301 /cat/oldpage http://www.site.com/newpage.php 2.2. Редирект со всех файлов.htm на.html RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)\.htm$ $1.html

    Или второй вариант:

    RewriteRule ^(.*)\.htm$ $1.html 2.3. Редирект всего каталога на другую страницу

    С любой страницы в каталоге и подкаталогах /old/ будет происходит редирект на /new.php

    RewriteRule ^old(.*)$ /new.php 2.4. Удаление лишних слэшей в адресе URL

    Например, страница /catalog///stranica.html доступна и открывается. Чтобы избежать такой ситуации и не плодить бесконечное число дублей следует записать следующий редирект

    RewriteCond %{REQUEST_URI} ^(.*)//(.*)$ RewriteRule . %1/%2 2.5. Реврайт без редиректа

    Можно загрузить другую страницу без смены адреса страницы URL. Например, загрузим страницу /news.html , а в адресной строке будет отображаться адрес /news/happy

    RewriteRule ^news/happy.* /news.html [L] 2.6. Простановка замыкающего слеша в конце адреса главной страница

    Например, многие сервера работают так, что последний слэш не пишется в URL. Например, http://site.ru . Ниже приведенный код решают это проблему: сайт будет открывать по http://site.ru/

    RewriteCond %{REQUEST_URI} /+[^\.]+$ RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ 2.7. Удаляем директорию каталога из URL

    Например для редиректа со страницы site.com/directoriya/stranica.html на site.com/stranica.html нужно прописать следующее:

    RewriteRule ^directoriya/(.+)$ http://site.com/$1

    Или второй вариант:

    RewriteCond %{DOCUMENT_ROOT}/directoriya/$1 -f RewriteRule ^(.*)$ directoriya/$1 2.8. Редирект GET параметров

    Например, сделать редирект со страницы /?act=page&id=2 на /page-2/

    RewriteCond %{QUERY_STRING} act=page RewriteCond %{QUERY_STRING} id=(\d+) RewriteRule .* /page/%1/? ] 2.9. Редирект на мобильную версию сайта m.site.ru

    В данном примере сначала проверяется факт того, что пользователь открыл сайт с мобильного устройства {HTTP_USER_AGENT} , далее происходит замена адреса сайта на m.URL

    RewriteCond %{HTTP_HOST} ^(.*)$ RewriteCond %{HTTP_USER_AGENT} (?i:midp|samsung|nokia|j2me|avant|docomo|novarra|palmos|palmsource|opwv|chtml|pda|mmp|blackberry|mib|symbian|wireless|nokia|hand|mobi|phone|cdm|upb|audio|SIE|SEC|samsung|HTC|mot-|mitsu|sagem|sony|alcatel|lg|eric|vx|NEC|philips|mmm|xx|panasonic|sharp|wap|sch|rover|pocket|benq|java|pt|pg|vox|amoi|bird|compal|kg|voda|sany|kdd|dbt|sendo|sgh|gradi|jb|dddi|moto|iphone|android) RewriteRule ^$ http://m.%1 2.10. Редирект с поддомена

    Например, выполним редирект с любой страницы поддомена poddomen.site.ru на основной домен site.ru

    RewriteCond %{HTTP_HOST} ^poddomen.site.ru$ RewriteRule ^(.*)$ http://site.ru%{REQUEST_URI} 3.Другие примеры с htaccess 3.1. Запретить IP-адрес и браузер

    Запретим открывать сайт для пользователя с браузера IE с IP-адресом 172.111.222.55

    RewriteCond %{HTTP_USER_AGENT} MSIE RewriteCond %{REMOTE_ADDR} ^172\.111\.222\.55$ RewriteRule ^.*$ - [F] 3.2. Запретить конкретный файл

    Запретим для всех файл disable_file.html :

    deny from all 3.3. Разрешить доступ с одного ip

    Доступ будет разрешен только с одного ip-адреса 172.111.222.55

    order deny,allow deny from all allow from 172.111.222.55 3.4. Запретить доступ с разных ip

    Запретить доступ к сайту с нескольких ip-адреса 172.112.222.55, 172.113.222.55, 172.114.*.*

    order deny,allow deny from all deny from 172.112.222.55 deny from 172.113.222.55 deny 172.114.*.* 3.5. Редирект в URL с больших символов на маленькие

    Все большие буквы в адресе URL будут переведены на маленькие.

    RewriteRule - RewriteRule ! - RewriteRule ^([^A]*)A(.*)$ $1a$2 RewriteRule ^([^B]*)B(.*)$ $1b$2 RewriteRule ^([^C]*)C(.*)$ $1c$2 RewriteRule ^([^D]*)D(.*)$ $1d$2 RewriteRule ^([^E]*)E(.*)$ $1e$2 RewriteRule ^([^F]*)F(.*)$ $1f$2 RewriteRule ^([^G]*)G(.*)$ $1g$2 RewriteRule ^([^H]*)H(.*)$ $1h$2 RewriteRule ^([^I]*)I(.*)$ $1i$2 RewriteRule ^([^J]*)J(.*)$ $1j$2 RewriteRule ^([^K]*)K(.*)$ $1k$2 RewriteRule ^([^L]*)L(.*)$ $1l$2 RewriteRule ^([^M]*)M(.*)$ $1m$2 RewriteRule ^([^N]*)N(.*)$ $1n$2 RewriteRule ^([^O]*)O(.*)$ $1o$2 RewriteRule ^([^P]*)P(.*)$ $1p$2 RewriteRule ^([^Q]*)Q(.*)$ $1q$2 RewriteRule ^([^R]*)R(.*)$ $1r$2 RewriteRule ^([^S]*)S(.*)$ $1s$2 RewriteRule ^([^T]*)T(.*)$ $1t$2 RewriteRule ^([^U]*)U(.*)$ $1u$2 RewriteRule ^([^V]*)V(.*)$ $1v$2 RewriteRule ^([^W]*)W(.*)$ $1w$2 RewriteRule ^([^X]*)X(.*)$ $1x$2 RewriteRule ^([^Y]*)Y(.*)$ $1y$2 RewriteRule ^([^Z]*)Z(.*)$ $1z$2 RewriteRule - [N] RewriteCond %{ENV:HASCAPS} TRUE RewriteRule ^/?(.*) /$1

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

    Понятие редиректа

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

    Для чего он требуется?
  • Замена адреса сайта на более красивый. Если просто переехать с одного сайта на другой, можно потерять многих посетителей. Именно благодаря редиректу, происходит переброс пользователей на новый сайт, даже если они обращаются к старому адресу. Таким образом, редирект страницы позволяет сохранить клиентов без дополнительных затрат средств и времени при замене адреса сайта.
  • Так называемая склейка доменов. Посетители могут вводить в поисковую строку один и тот же адрес двумя способами: используя тройное W или нет. В обоих случаях юзер попадает на один и тот же сайт, именно из-за настроенной переадресации.
  • Временная переадресация используется в случаях, когда сайт перенесли на новый домен, однако он пока не готов работать в полную силу.
  • Навязывание ненужной рекламы.
  • Увеличение посещений того или иного Интернет-ресурса. Такой редирект, который перенаправляет пользователя вместо искомого сайта на другой (например, рекламный), используется для накрутки счетчиков.
  • Так называемые реферальные ссылки.
  • Типы

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

    • 300 — выбор одного варианта из нескольких. Чаще всего используется автоматически для выбора нужного языка или кодировки.
    • 301 — перемещение навсегда. Как раз такой вид переадресации используется при переезде сайта.
    • 302 — временный редирект. Используется для временной переадресации юзеров и поисковых систем с одного адреса на другой.
    • 303 — ресурс, который запрашиваете, находится по другому адресу. Следует отметить, что такой редирект используется поисковыми системами: когда результатом поиска является всего одна страница, юзера сразу перенаправляют на нее.
    • 305 - используйте прокси. Доступ к документу с таким типом редиректа доступен только с использованием прокси-сервера.
    • 307 - еще один временный редирект.

    Редирект с кодом 304 указывает на то, что наполнение страницы осталось прежним, а 306 код припасен на возможные будущие нужды.

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

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

    Переадресацию можно настроить несколькими способами. Рассмотрим каждый из них отдельно.

  • Настройка переадресации через htaccess. Это, пожалуй, самый простой и распространенный способ организовать перенаправление с одного сайта (или страницы) на другой. Чтобы воспользоваться этим методом, необходимо в папке сайта создать файл и назвать его.htaccess, имя файла должно начинаться именно с точки. У пользователей CMS и Joomla такой файл уже имеется, создавать его специально нет необходимости.
  • В том случае, когда Интернет-ресурс написан не на CMS, нелишним будет знать, как сделать редирект через PHP . Но для этого нужно разбираться в структуре вашего Интернет-ресурса.
  • Редирект HTML используется в случае, когда необходимо сделать переадресацию одной или нескольких статей сайта, написанного на HTML. Настройка редиректа всего сайта этим способом займет длительное время.
  • Редирект при помощи JavaScript - простой и эффективный способ для владельцев простых сайтов или тех, кому требуется настроить переадресацию одной или нескольких страниц либо полностью всего ресурса.
  • Примеры

    Редирект сайта или страницы через htaccess прописывается следующим образом:

    • Redirect /page-А.html /page-В.html - перенаправление со страницы А на страницу В.
    • Redirect / http://site2.ru/ - переадресация на сайт2.

    Чтобы "склеить" домены, в файл.htaccess, необходимо добавить следующие строки:

    • RewriteEngine on
    • RewriteCond %{HTTP_HOST} ^www.example\.ru
    • RewriteRule ^(.*)$ http://example.ru/$1

    Редирект на php будет выглядеть так:

    • - перенаправление на сайт А;
    • - редирект на страницу А.

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

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

    Через JavaScript . Перенаправление посетителя на сайт А:

    • location="http://siteA.ru"

    Разобраться в том, что такое редирект, не составит труда уверенным пользователям.

    Хотите перенаправить URL-адрес из одного места в другое? В этом простом руководстве мы покажем, как можно это сделать с помощью Apache / .htaccess , PHP , JavaScript , HTML и т. д. Каждый метод редиректа HTML мы кратко поясним и продемонстрируем готовые к использованию примеры.

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

    Редирект с помощью PHP выполняется с помощью функции header() , например:

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

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

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

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

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

    document.location.href = "http://example.com/";

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

    Можно перенаправить пользователя на новый URL-адрес , используя старый добрый HTML . Вот пример:

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

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

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

    #!/usr/bin/perl print "Location: http://example.comnn"; exit;

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

    Чтобы перенаправить URL-адрес с помощью ASP , добавьте следующий код:

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

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

    Redirect 301 /old-location.html http://example.com/new-location/

    Перед тем, как сделать редирект HTML , этот код нужно добавить в файл .htaccess или файл конфигурации сервера Apache . Вот синтаксис этого метода:

    [Директива] [Код состояния] [Старый URL] [Новый URL]

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

    http://example.com/old-directory/file-01.html http://example.com/old-directory/file-02.html http://example.com/old-directory/file-03.html . . .

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

    RedirectMatch 301 /old-directory/file-(.*).html http://example.com/new-directory/file-$1.html

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

    • или отсутствию символа );
    • $1 — возвращает шаблон, сопоставляемый первым (.*) .
    Редирект URL-адресов с помощью mod_rewrite Apache

    Более функциональный способ редиректа с помощью Apache — использовать его переписывающий модуль mod_rewrite . Вот несколько примеров, которые можно добавить в .htaccess или в файл конфигурации Apache .

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

    Этот код редиректа HTML перенаправляет все www-версии URL-адресов на их эквивалентные версии без www .

    RewriteCond %{HTTP_HOST} ^www.example.com$ RewriteRule (.*) http://example.com/$1

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

    • . — буквально соответствует точке;
    • $ — обозначает конец запрошенного URI ;
    • (.*) — соответствует любому символу (или отсутствию символов );
    Пример 2: Редирект всего домена

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

    RewriteRule ^/(.*) https://new-domain.tld/$1

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

    RewriteCond %{HTTP_HOST} (.*).old-domain.tld RewriteRule ^/(.*) https://%1.new-domain.tld/$1

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

    • ^ — обозначает начало запрошенного URI ;
    • (.*) — соответствует любому символу (или отсутствию символов );
    • $1 — соответствует шаблону из круглых скобок (.*) в RewriteRule ;
    • %1 — соответствует первому шаблону из круглых скобок (.*) в RewriteCond
    • — отправляет код состояния 301 и инструктирует Apache прекратить обработку набора правил.

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

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

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

    RewriteCond %{REQUEST_URI} ^/old-directory/(.*).(html|php)$ RewriteRule (.*) http://example.com/new-directory/%1.%2

    Мы перенаправляем все запросы к любым файлам HTML или PHP , расположенным в папке /old-directory/ . Все соответствующие запросы перенаправляются в тот же файл, который находится в /new-directory/ . Вот несколько примечаний о регулярном выражении, используемом в этом примере:

    • ^ — обозначает начало запрошенного URI;
    • (.*) — соответствует любому символу (или отсутствию символов );
    • . — буквально соответствует точке;
    • (html php) — соответствует либо html , либо php ;
    • — делает шаблон нечувствительным к регистру;
    • %1 — соответствует первому шаблону из круглых скобок (. *) в RewriteCond ;
    • %2 — соответствует второму шаблону из круглых скобок (html|php ) в RewriteCond ;
    • — отправляет код состояния 301 и инструктирует Apache прекратить обработку набора правил.
    Редирект ошибки 404 с помощью Apache

    Вот удобный код редиректа html HTML всех ошибок 404 «Not Found» на определенный URL .



    © 2024 beasthackerz.ru - Браузеры. Аудио. Жесткий диск. Программы. Локальная сеть. Windows