Редирект на другую страницу

Содержание

Как сделать переадресацию страниц на сайте (301 редирект и другое)

Часто в веб разработке требуется делать переадресации с одной страницы (например, устаревшей) на другую. При этом переадресация может выполняться разными методами — как с потерей веса страницы, так и без нее. Но об этом подробнее.

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

Переадресацию страниц можно делать разными методами. Рассмотрим основные.

301 редирект через .htaccess

В корне вашего сайта есть файл (если его нет — создайте) под названием .htaccess. Откройте его на редактирование и используйте один из следующих способов.

Redirect permanent и Redirect 301 — легко делает 301 редирект с одной страницы на другую (или сайта). Первой идет старая ссылка сайта (заметьте — без домена), второй — ссылка на новую страницу (которая может быть этим же сайтом или вообще новым).

Примеры:
Redirect permanent /staraya-stranica.php http://newsait.ru/novaya-stranica.php
(здесь просто переадресуем с устаревшей страницы на новую)

Redirect 301 / http://newsait.ru/
(здесь / означает, что все начиная с главной страницы сайта и всех его подстраниц (поддиректорий) будет переадресовываться на новый домен; т.е. фактически переадресация с оного домена на другой.)

RewriteRule редирект — более сложный редирект, чем предыдущие варианты. Требует для правильной работы подключение модуля mod_rewrite на хостинге (обычно всегда включен). Часто этот метод используют для переадресации страниц с www на такие же без www и обратно. Рассмотрим их:

Редирект домена с www на не-www
Options +FollowSymLinks
RewriteEngine On
RewriteCond % ^www\.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

Редирект с не-www на домен с www
RewriteEngine On
RewriteCond % !^www\.(.*) [NC]
RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]

301 редирект с домена на домен и исключением для ссылки /market/vm2_market.xml. Т.е. все запросы (кроме /market/vm2_market.xml), со старого домена на новый будут выполняться.

RewriteEngine on
RewriteCond % !^/market/vm2_market.xml$
RewriteRule ^(.*)$ http://newdomen.ru/$1 [L,R=301]

301 Все запросы (кроме /market/vm2_market.xml и ссылки /texts (и всеми ее «подссылками»)), со старого домена на новый будут выполняться. Также здесь работает правило переадресации определенной подссылки (RedirectMatch 301)

RewriteEngine on
RedirectMatch 301 ^/texts/data/msg/(.*)\.png$ http://olddomen.ru/texts/data/rimage/msg.php? >
RewriteCond % !^/texts*
RewriteCond % !^/market/vm2_market.xml$
RewriteRule ^(.*)$ http://newdomen.ru/$1 [L,R=301]

RedirectMatch 301 — еще один хороший метод редиректа, он похож на Redirect 301, но имеет больший функционал. А именно, с его помощью можно делать редиректы на основе регулярных выражений.

Примеры:
RedirectMatch 301 ^/olddirectory/ http://blogprogram.ru/newdirectory/
(Здесь переадресует всю директорию на новую)

RedirectMatch 301 ^(.*)$ http://blogprogram.ru
(Переадресует все страницы со старого домена на новый с помощью 301 редиректа (вес также передается на новый сайт))

RedirectMatch 301 (.*)\.html$ http://blogprogram.ru$1.php
(Смена страниц с html расширения на php расширение)

RedirectMatch 301 /dirA/(.*)\.php$ http://blogprogram.ru/dirB/$1.php
(Запускает перенаправление из директории dirA в директорию dirB только при обращении к PHP скриптам.
http://blogprogram.ru/dirA/page.php -> http://blogprogram.ru/dirB/page.php — сработает
http://blogprogram.ru/dirB/page.html — не сработает)

Синтаксис для регулярных выражений
. — Точка заменяет произвольный символ.
[abc] — обозначает перечень символов, совпадающих с буквами a, b, или с.
[^abc] — перечень символов, которые не входят в указанных диапазон. Совпадёт с любым символом, кроме a, b, или с.
* — означает, что предшествующий символ может повторяться (0 или более раз).
[abc]* — команда найдёт идущие подряд символы из заданного набора.
[^abc]* — с точностью до наоборот.

.* — заменяет абсолютно любой набор символов. «.*» — найдёт все подстроки между кавычками.
^ — начало строки (в том случае, если используется в начале выражения).
$ — обозначает конец строки.

\w — буква, цифра или подчёркивание _.
\d — заменяет любую цифру.
\D — заменяет любой символ, но не цифру.
[0-9] — заменяет любую цифру.
[a-z] — любая буква от a до z (весь латинский набор символов) в нижнем регистре.
[A-Z] — любая буква от A до Z в ВЕРХНЕМ регистре.
[a-zA-Z] — любая буква от a до Z в любом регистре.
[a-Z] — то же самое.

Спецсимволы, используемые в правилах и их значения.
^ — спецсимвол начала строки;
$ — спецсимвол конца строки;
! — спецсимвол отрицания;
. — точка, заменяет любой символ, но только один;
() — группировка;
\ — «экранирующий» слеш, следующий символ после него считается обычным, а не спецсимволом.

Модификаторы используются после обычных, спецсимволов или их групп и позволяют расширить возможности шаблонов для срабатывания правил.
? — символ повторяется 0 или 1 раз.
+ — повторяется от 1 до 65536 раз.
* — повторяется от 0 до 65536 раз.

Флаги, задают доп. опции для используемого правила. Перечисляются в квадратных скобках через запятую, скажем [NC] или [R=301,L].
NC — флаг NoCase, отключающий проверку регистра символов при срабатывании правила.
R — флаг Redirect, производит процесс остановки изменения URL-адреса и возвращает результат. Чаще всего используется значение R=301, но возможны и другие для временных перенаправлений (302, MOVED TEMPORARY).
L — флаг Last, останавливает формирования URL-адреса и строка считается окончательной.

Редирект через php. Если у вас обычная php страница, которую надо переадресовать на новый адрес, то можно обойтись без .htaccess

Пример:

header(«Location: http://blogprogram.ru/category/»); exit(); ?>

Редирект через javascript. Также переадресацию можно сделать и на обычном javascript (правда без передачи веса страницы).

Пример:

(обычная переадресация на страницу сайта)

(обычная переадресация на страницу сайта перед которой пользователю выводится сообщение)

301 Редирект .htaccess — полный обзор с примерами

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

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

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

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

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

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

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

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

1. Правила Redirect, RewriteRule и RewriteCond

1.1. Директива Redirect

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

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

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

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

1.2. Директива RewriteRule

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

  • При внешнем редиректе меняется урл адреса в строке браузера — » [R=301,L] «
  • При внутреннем — не меняет урл адреса в строке браузера — » [R=301] » или » [L] «

1.3. Директива RewriteCond

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

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

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

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

2. Примеры 301 редиректов в .htaccess

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

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

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

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

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

2.2. Редирект со всех файлов .htm на .html

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

2.3. Редирект всего каталога на другую страницу

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

2.4. Удаление лишних слэшей в адресе URL

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

2.5. Реврайт без редиректа

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

2.6. Простановка замыкающего слеша в конце адреса главной страница

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

2.7. Удаляем директорию каталога из URL

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

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

2.8. Редирект GET параметров

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

2.9. Редирект на мобильную версию сайта m.site.ru

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

2.10. Редирект с поддомена

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

3.Другие примеры с htaccess

3.1. Запретить IP-адрес и браузер

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

3.2. Запретить конкретный файл

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

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

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

3.4. Запретить доступ с разных ip

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

3.5. Редирект в URL с больших символов на маленькие

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

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

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

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

Есть мифы, связанные с редиректами: например, что при редиректе не передаётся PR страницы, но этот миф был развенчан одним из вебмастеров Google Джоном Мюллером в своем блоге. Или что вместо 301 Moved Permanently редиректа можно использовать 302 Temporary Redirect.

Существует целый класс 3хх редиректов. Наиболее часто используются коды 301 и 302 — они как двойняшки, которые вроде бы и похожи, но всё-таки различаются. А для поискового робота это два совершенно разных человека, и трактуются такие ответы сервера по-разному:

  1. 301 Moved Permanently : постоянный редирект. Этот код уведомляет о том, что ресурс перемещен на новый адрес на постоянной основе с удалением прошлого домена. Нужен для окончательного переезда на новый ресурс, новую CMS или для склейки страниц.
  2. 302 Temporary Redirect: временный редирект. Уведомляет о временном переезде сайта или его страницы. Используется при технических работах на сайте.

Как эти коды отразятся на выдаче:

  • При 301 редиректе в поисковой выдаче начинает отображаться новый URL, но это может занять некоторое время. Google советует сохранять статус страницы в течение года.
  • При 302 редиректе в поиске сохраняется старый URL страницы, но через 6 месяцев использования 302 редиректа поисковая система начинает считать его за постоянный 301, т.к. временное перенаправление не зря названо «временным», а полгода — достаточно большой срок.

Из-за подобных ошибок вебмастеров и злоупотребления 302 редиректом в неэтичных целях SEO-специалисты очень не советуют использовать его на своём сайте, ведь даже за небольшое подозрение в черном SEO вы можете схлопотать серьезный штраф. Давайте лучше разберемся как можно настроить легальный 3 01 редирект в .htaccess

Самый простой пример редиректа: с сайта на сайт

www.example.com — сайт, на который мы перенаправляем запрос пользователя.

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

Redirect /semantica semantica.in/

Redirect /semantica/blog semantica.in/blog

Redirect 301 /kernel semantica.in/

Что всё это значит:

1 строка — при обращении к странице www.example.com/semantica будет открываться сайт semantica.in/

2 строка — при обращении к http://www.example.com/semantica/blog будет открываться semantica.in/blog

3 строка — веб-сервер будет отдавать код 301 о постоянном переезде на новый URL

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

Сложные редиректы

Для сложных редиректов существует модуль mod_rewrite — это средство преобразования URL-адресов, использующее регулярное выражение. Для редиректа используются три важные директивы: RewriteCond, RewriteRule и RewriteEngine.

  1. RewriteEngine включает или выключает работу механизма преобразования:

Положение on-off включает и выключает работу модуля.

2. RewriteCond — определяет условие какого-либо правила, при котором происходит преобразование. Сразу после директивы чаще всего идут переменные % и %, которые означают адрес сервера (например, example.ru) и ресурс, запрошенный в строке HTTP-запроса, соответственно.

3. RewriteRule — идёт после одного или нескольких RewriteCond. Это правило преобразования URI, которое применяется только при условии выполнения RewriteCond.

Синтаксис директивы RewriteRule выглядит следующим образом:

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

Метасимволы используются для задания групп символов и меток в шаблоне:

  • ^ — метка начала строки,
  • $ — метка конца строки,
  • \ — экранирующий слеш, позволяет считать следующий за ним метасимвол обычным символом,
  • . — точка, обозначает любой символ, но только один,
  • () — группировка.
  • ! — отрицание,

Флаги определяют дополнительные опции для данного правила и перечисляются в квадратных скобках через запятую:

  • NC — (nocase) отключает проверку регистра символов.
  • R — (redirect) останавливает процесс преобразования и возвращает результат браузеру клиента как редирект на данную страницу (302, MOVED TEMPORARY). С данным флагом можно указать другой код результата, например R=301 возвратит редирект с кодом 301 (MOVED PERMANENTLY).
  • L — (last) останавливает процесс преобразования, и текущая ссылка считается окончательной.

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

Теперь, зная эти правила, мы можем попытаться самостоятельно сделать редирект с помощью htaccess .

  1. Редирект .htaccess на другую страницу
  1. Редирект .htaccess с www на без www
  1. Редирект .htaccess с без www на www

где site.ru — ваше доменное имя.

  1. Редирект с index .php (html) на главную страницу
  1. Редирект со слешем на без слеша
  1. Редирект со страниц без слеша на слеш
  1. Редирект всех страниц одного домена на главную другого домена
  1. Редирект с http на https через. htaccess
  1. Редирект с https на http
  1. Избавление от дублей страниц

Если вы заметили, что к адресу основной страницы приклеивается что-то вроде &sa=123 456 или &crw=123 456 и подобное, просто замените буквенную часть в следующем коде

Пример: объясняем на пальцах

Как с помощью 301 редиректа сделать так, чтобы по запросу site.ru/category/art1/zapis/ в строке адреса было site.ru/zapis/, то есть /category/art1 вырезалась бы из строки, но после вырезания строки показывалось содержимое site.ru/category/art1/zapis/?

А теперь давайте подробнее разберем, что же тут написано и что вообще происходит.

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

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

Вторая строка делает 301 редирект с www.site.ru/category/art1/zapis/ на www.site.ru/zapis/
Третья же строка говорит серверу, что если адрес вида www.site.ru/zapis/, то надо показывать то, что находится по адресу www.site.ru/category/art1/zapis/

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

  1. Принцип «от меньшему к большему»: располагайте редиректы от частных к более глобальны. Т. е. переадресация со страницы на страницу будет выше, чем переадресация с без www на www .
  2. Избегайте последовательных — двойных, тройных — редиректов. Один редирект перенаправляет пользователя только один раз.
  3. Проверьте HTTP заголовки и статусы ответа сервера, чтобы убедиться в правильности работы редиректа.

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

Когда редирект необходим

  1. Вы переехали на другой домен: и вам логично не хочется потерять своих клиентов — настоящих и потенциальных, а также есть необходимость передать вес прошлого сайта на новый.
  2. Хотите склеить зеркала: у вас несколько доменных имён с разным написанием бренда и вы перенаправляете всех посетителей на основной сайт.
  3. Страница сменила свой адрес: структура вашего сайта была реорганизована и вы пытаетесь предотвратить возможный беспорядок.
  4. Хотите избавиться от дублей страниц или копии сайта: не стоит относится к дублям как чему-то безвредному и незначительному. С дублями вы теряете в весе и сдаете позиции конкурентам, а так же дублирование контента может привести к штрафам от поисковых систем.
Илон Маск рекомендует:  Что такое код getx

В каких случаях не нужно использовать редирект?

  1. Вы временно переезжаете на новую страницу: для этого есть 302 и 307 код, это гарантия того, что не произойдёт склейки страниц и оригинальная страница не выпадет из поисковой выдачи.
  2. Вы переезжаете из-за проблем со старым доменом: если у вас есть баны, фильтры и штрафы, то при склейке к вам перейдет не только ТИЦ и PR, но и все беды, от которых вы бежали.

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

– Технический аудит.
– Оптимизация.
– Коммерческие факторы.
– Внешние факторы.

Мы не просто говорим, в чем проблемы. Мы помогаем их решить

Как сделать редирект? 6 способов редиректа

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

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

Данный материал не представляет собой исчерпывающий набор редиректов — это всего лишь несколько наиболее популярных видов и способов редиректа.

Для чего нужен редирект? Основная функция для перенаправление посетителей с одного сайта на другой (с одной страницы на другую).

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

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

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

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

  1. header-редирект средствами PHP — 301, 302-й редирект (разница между ними).
  2. Редирект средствами .htaccess (и модуля mod_rewrite, который используется при этом).
  3. Простейший JavaScript — редирект с помощью doсument.location
  4. META-REFRESH — редирект с помощью meta-тэгов
  5. JavaScript-редирект с задержкой через setTimeout (например для учёта Метрикой).
  6. Iframe/Frameset — «псевдо» редирект через фреймы (например для прохождения модерации в Яндекс.Директе).

Как сделать редирект страницы. Способ 1 — PHP-редирект.

Этот редирект срабатывает без загрузки странички.
Страничка на которую идёт редирект — получает оригинальный REFERER (т.е. таким образом не скрыть откуда был редирект).

Данный редирект например можно использовать для Ютуба. Ютуб как известно можно связать только с одним сайтом, соответственно на чужой сайт вы не сможете сделать ссылку. Для обхода этого ограничения создаете отдельный подкаталог на своем домене, в него кладете index.phd с прописанным кодом редиректа.

Рекомендую прочитать мою статью YouTube — инструмент для заработка в интернете, в которой я подробно прошелся о преимуществах использования Ютуба.

Редирект нужно оформлять в файл.php и ОБЯЗАТЕЛЬНО до вывода любых символов. То есть если будет лишний пробел или символ, который выводится на экран (например до знака

301 и 302 редирект особой разницы не имеют для арбитражника (обычно в SEO больше) — но некоторые рекламные сети принципиально пропускают только один из редиректов. Технически 301 обозначает временный редирект, а 302 — постоянный редирект. Указать можно третьим параметром функции код редиректа, например 302 (второй должен быть true, параметры идут через запятую):

Способ 2. htaccess-редирект

Этот редирект делается простым помещением файла .htaccess в папку где нужно сделать редирект.

Например, редирект любого url (из папки где .htaccess) на нужный адрес, вот содержимое .htaccess:

RewriteEngine On
RewriteRule (.*) //leonov-do.ru/

Возможны более сложные редиректы, но такой вариант по своей сути — такой же как и header-редирект (если указывается внешний URL). Возможны вариант переадресации файла — вместо (.*) указать к примеру имя go — будет редиректить адрес go и т.п. Можно указать в одном файле несколько строчек RewriteRule подряд с разными правилами — тогда не нужно писать каждый раз RewriteEngine On.

Способ 3. Простейший javascript-редирект.

Разница этого редиректа в том — что сначала в браузер загружается страничка HTML — потом после её загрузки происходит редирект. Может ощущаться некоторая задержка с появлением «белого экрана» в момент редиректа — в этом небольшой минус перед header-редиректом. Не сработает на компьютерах/браузерах, где отключен javascript. Соответственно REFERER виден именно тот, где был код редиректа (т.е. сама страничка с кодом будет как источник перехода).

Оформляется так (в секции или ):

Если на страничке установлен код Яндекс.Метрики — он скорее всего не успеет сработать и засчитать посетителя, т.к. подобный редирект срабатывает быстрее метрики.

Способ 4. META-refresh-редирект.

Считается одним из наименее надёжных редиректов, но тоже используется, особенно там где нельзя вставить Javascript-код. Также срабатывает уже только после загрузки странички, как и javascript-редирект.

Код нужно вставлять в секцию HTML-странички:

Также делается с задержкой. Можно попробовать менять значение задержки (вместо цифры 1 — указать другое время, 0, 5 секунд и т.п.)
В основном этот вариант не рекомендуется к использованию.

Способ 5. Javascript-редирект с задержкой.

Этот вариант больше подходит если нужно сначала выполнить какой-то Javascript-код (например Метрики и т.п.) — а потом редиректить.

Не слишком надёжный способ выполнения задержки, т.к. у всех на компьютерах скорость выполнения Javascript может быть разной, но это лучше чем ничего. Т.е. можно рядом поставить код метрики и к примеру задержку в 300 миллисекунд — код Метрики скорее всего успеет выполниться и потом будет редирект.

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

В данном случае код сработает через 300 миллисекунд (1000 = 1 секунда). Не очень удобно может быть и для посетителя, но если нужен учёт метрикой (и не используются цели на предыдущей страничке на клик по кнопке и т.п.) — это тоже вариант.

Способ 6. Псевдоредирект через IFRAME или FRAMESET.

Почему псевдоредирект? Потому что по факту редиректа не происходит, а просто в фрейме грузится нужная страничка.

Даже если растянуто на всю страничку, а основная страница не содержит кода или содержит минимальный код (например, Метрика или счётчик).

Как правило, такой редирект, не детектируется рекламными сетями, которые не пропускают редиректные ссылки (например Яндекс.Директ), а в URL-строке видно только адрес оригинальной странички с кодом, а не той что грузится во фрейме.

Вариант А — через FRAMESET:

Заголовок странички

Ваш браузер не поддерживает отображение фреймов

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

Настройка 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, чтобы забыть о технических сложностях и полностью сосредоточиться на развитии своего интернет-ресурса!

301 редирект — используем правильно для внутренней оптимизации

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

301 редирект (301 Permanent Redirect) — ответ сервера, а также серверное перенаправление с одного url-адреса на другой. Благодаря такому перенаправлению можно автоматически отправлять пользователя или поисковую систему со старого адреса страницы на новый. Этот ответ сервера указывает поисковым системам, что страница была перемещена на другой адрес, поэтому старый url можно считать устаревшим. После того, как пройдет переиндексация, поисковые системы «склеят» их и будут предлагать пользователям новый.

Где настраивается 301 редирект

Существует несколько наиболее часто используемых способов настройки 301 редиректов:

— через php условие

Когда браузер получает команду вместо одной страницы открыть вторую. Если Ваш сайт сделан на какой-то CMS, то есть вероятность того, что у неё есть функция редиректа с корня на файл index. В этом случае откройте index.php, который находится в корне Вашего движка и пропишите:

где первая строка указывает какой url-адрес должен перенаправлять, а вторая — на какой url-адрес должно выполняться перенаправление.

— в конфигурационном файле, например в .htaccess

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

В каких случаях нужно использовать 301 редирект

301 редирект с www на без www (настройка главного зеркала)

Самый распространенный случай, когда необходимо настроить редирект, это когда сайт доступен по нескольким адресам одновременно. Например: http://site.com и http://www.site.com. Это может мешать продвижению ресурса, так как в индексе поисковых систем могут появляться полные дубли страниц. Поэтому в файл .htaccess можно попробовать добавить такие строки:

или вот такой вариант

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

или вот такой вариант

301 со старого адреса страницы сайта на новый

Когда вам нужно удалить страницу, но на нее ведет много качественных ссылок, чтобы сохранить эти ссылки и передать ее Page Rank другой странице, можно настроить редирект с этой страницы на максимально релевантную по смыслу другую. В таком случае вам могут помочь дополнительные строки кода в файле .htaccess такого вида:

где test и new-test – ваш варианты страниц

301 редирект со всех страниц одного домена на главную другого домена

Когда вам нужно переехать на абсолютно другой адрес сайта или вы купили хороший старенький домен и хотите его средиркетить, вам могут помочь вот эти дополнительные строчки кода в файле .htaccess того сайта, с которого будет работать перенаправление:

где site.ru – сайт, на который будет идти редирект

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

где site.ru – сайт, на который будет идти редирект

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

Если вы решились переехать на защищенный протокол https, необходимо настроить редирект с помощью этих строк:

или можно попробовать такой вариант

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

или вот такой вариант

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

или вот такой вариант

301 редирект только адреса site.ru/index.php (без GET параметров) на основное зеркало site.ru

или вот такой вариант

301 редирект всех адресов с index.php и GET параметрами на страницы только с GET параметрами (вырезать в url index.php)

Илон Маск рекомендует:  border-bottom-right-radius в CSS

301 редирект для index.php, index.html или index.htm (например в Joomla), массовая склейка

Редирект с внутренней страницы на главную

Редирект с главной на внутреннюю страницу

Редирект всех внутренних страниц на главную

Редирект с домена РФ на домен RU

301 редирект каталога

Эти решения чаще всего подходят для основных задач, но иногда их необходимо дорабатывать совместно с разработчиками. Связано это с особенностями отдельных cms-систем.

Важная рекомендация: на многих хостингах по умолчанию может работать 302 или другой 3ХХ редирект. Поэтому рекомендуется всегда дописывать в свои правила [R=301,L].

Смена cms-системы и массовое изменение всех адресов страниц сайта

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

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

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

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

Почему 301 редирект, а не 302 и другой 30х — опыт из нашей практики

С точки зрения SEO, следует всегда использовать 301 редирект , в случае, если вы хотите перенаправлять и пользователей и поисковых роботов на новый адрес.

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

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

Вот случай когда сайт переехал с домена kiev.ua на ua, а чуть позже еще и на защищенный протокол https, но разработчики настроили не 301, а 302 редирект. Результат:

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

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

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

Доброго воскресного дня!

Очень часто на форумах можно встретить вопросы, посвящённые .htaccess — файлу конфигурации веб-сервера Apache. Основной камень преткновения в том, что при разработке не стояла задача удобной конфигурации для конечного пользователя (в дистрибутив не включена оболочка для визуальных установок с помощью галочек, выпадющих списков и тому подобное), зато администраторы серверов справляются с этой задачей замечательно, довольствуясь «маном» (от команды Linux — man — краткое руководство от разработчиков, или в данном случае — от профессионалов для профессионалов).

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

Редирект .htaccess: постоянное перенаправление, 301

Подобная штука имеет разные названия. Непонятки может вызвать разве что число — почему же 301? Суть кроется в самом протоколе HTTP, который на запросы клиента отвечает определённым кодом состояния. Код 404 Not Found (Страница не найдена) известен почти всем. Код 200 OK почти не известен, но именно он означает, что всё в порядке и документ будет показан в браузере. А вот код 301 Moved Permanently означает, что документ окончательно перебрался на новый адрес. Именно его и называют чаще всего перенаправлением, хотя общий пул ответов обозначен как — 3xx: Redirection.

В общем случае, для безусловного внешнего (назовём его пользовательским) редиректа, при котором браузер автоматически переадресовывается на другую страницу, обычно незаметно для пользователя (изменяется адресная строка), можно в .htaccess поместить такой код:
RewriteEngine On
RewriteRule .* http://newsite.ru/ [L,R=permanent]
Здесь, первая строка включает механизм модуля mod_rewrite, который позволяется вытворять с адресами всё, что угодно. Назовём это преобразованием URL по условиям на лету. Вторая строка определяет непосредственно правило для преобразования, в примере выше все запросы редиректятся на http://newsite.ru/. В квадратных скобках размещаются флаги: L — последнее (Last) правило, R — тип перенаправления (Redirect), указывается в виде R=code, где code — буквенное или числовое обозначение (permanent или 302).

Взглянув на этот URL, сразу видно, что статья опубликована в ноябре 2014. Убрав название с заключающим слешем — https://a-panov.ru/2014/11/ — получим список всех публикация за ноябрь. Обычные адреса, вида:

особой дружелюбностью не отличаются. Увидев такой адрес, нельзя сказать о странице, на которую он ведёт, решительно ничего.

Этот способ хорош, когда вам неважно, на какую страницу нового сайта ссылаться. Но если вы переехали на другой домен, то желательно делать редиректы всех запросов с сохранением адресов. Для этого используйте такой код:
RewriteRule ^.*$ http://newsite.ru/$0 [QSA,L,R=permanent]
Новый флаг QSA сохранит так же и параметры, которые можно встретить в адресах после знака вопроса. В уже знакомом примере:

если я размещу в .htaccess код выше, то произойдёт перенаправление на адрес http://newsite.ru/?p=389 чего без данного флага не было бы.

Как настроить редирект на www (или без www)

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

Вариант попроще, для одного домена. Перенаправление производится с поддомена www.site.ru на site.ru:
RewriteCond % ^www\.nsite\.ru$
RewriteRule .* http://nsite.ru/$0 [QSA,L,R=permanent]
Здесь появилась новая директива RewriteCond, которая задаёт условие, при котором должны срабатывать редиректы — правила RewriteRule. Условие, в данном случае, имя домена, соответствующее www.nsite.ru (в регулярных выражения символ точки означает «любой символ», поэтому его желательно экранировать с помощью обратного слеша).

Обратное перенаправление тоже выполнить очень просто:
RewriteCond % ^nsite\.ru$
RewriteRule .* http://www.nsite.ru/$0 [QSA,L,R=permanent]
Оба варианта рабочие, но у них есть маленький минус — для каждого нового конфига необходимо заменять домен nsite.ru на свой собственный. Нельзя ли сделать уникальный вариант? Легко!

Редирект с любого поддомена www:
RewriteCond % ^www\.(.*)$
RewriteRule .* http://%1/$0 [QSA,L,R=permanent]

Редирект на поддомен с www:
RewriteCond % !^www\.
RewriteRule .* http://www.%/$0 [QSA,L,R=permanent]

Как создать .htaccess

Такие вопросы тоже возникают. Проблема в том, что стандартный Проводник (приложение в Windows, отвечающее за графический интерфейс) не позволяет создавать файлы, начинающиеся с точки (созданием файлов или папкок осуществляется щелчком правой кнопкой на рабочем столе или в окне, и выбора нужного действия из списка Создать). Но выход есть: открывайте стандартный рекдатор Notepad (блокнот), в меню выбираете Файл → Сохранить как…, и в качестве имени сохраняемого файла указываете .htaccess — после этого он будет создан.

Файл .htaccess не работает

Бывают случаи, когда директивы из файла не работают. Обычно это вызвано тем, что в конфигурации Apache отключена поддержка .htaccess, за что отвечает директива:
AllowOverride none

Обычно это делается, чтобы несколько увеличить быстродействие — в этом случае веб-сервер не производит поиск и разбор .htaccess.

Возможен и такой вариант, что на сервере не используется Apache, например, IIS — основной «гость» на Windows-хостинге. Для уточнения свяжитесь с поддержкой своего хостера.

Есть ли какой-нибудь аналог .htaccess в nginx?

Ещё один довольно частый вопрос. В этом веб-сервера такой возможности нет. Однако, подобное обычно и не требуется. Дело в том, что nginx, как правило, устанавливается в качестве фронденда, т. е. принимает и обрабатывает все запросы, которые либо выполняет сам, либо перенаправляет на бэкенд, роль которого может выполнять Apache, который можно дополнительно конфигурировать с помощью .htaccess.

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

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

Вот и все, наш .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
Передает ссылочный вес да нет
Индексация старой страницы нет да
Наличие старой страницы в поиске нет да
Риск попасть под фильтры* минимален достаточно высок
Илон Маск рекомендует:  Что такое код ora_numrows

Проще говоря, делая 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 редирект. В случае, если используется плагин, возможна простая деактивация в один клик.

Как сделать редирект (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 Права на контент защищены.

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

Переадресация страницы (редирект 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 они, вместе с ответами, будут опубликованы на сайте.
Укажите к какому разделу сайта относится Ваш вопрос также Ваш ник или имя.

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

Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL