Где прописывается 301 редирект. Перенаправление домена с www на без-www

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

Как известно, любая страница со временем индексируется и имеет свой вес в сети. Если страница становится не актуальной, ее конечно можно удалить, но пользователи, которые перешли по ней, попадут на не существующий раздел сайта и в итоге его покинут. Правильнее считается на такие страницы делать 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 %{HTTP_HOST} ^www\.(.*)
RewriteRule ^(.*)$ http://%1/$1

Редирект с не-www на домен с www
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.(.*)
RewriteRule ^(.*)$ http://www.%1/$1

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

RewriteEngine on

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

RewriteEngine on
RedirectMatch 301 ^/texts/data/msg/(.*)\.png$ http://olddomen.ru/texts/data/rimage/msg.php?id=$1
RewriteCond %{REQUEST_URI} !^/texts*
RewriteCond %{REQUEST_URI} !^/market/vm2_market.xml$
RewriteRule ^(.*)$ http://newdomen.ru/$1

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

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

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

RedirectMatch 301 (.*)\..php
(Смена страниц с html расширения на php расширение)

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

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

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

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

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

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

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

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

Пример:

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

Пример:
window.location="http://сайт/category/";
(обычная переадресация на страницу сайта)
alert("Сейчас вы будете переадресованы!"); window.location="http://сайт/category/";
(обычная переадресация на страницу сайта перед которой пользователю выводится сообщение)

До тех пор, пока у вас есть доступ к директории своего сайта на сервере, такие действия не составят особого труда. Будем считать, что ваш сайт работает на веб-сервере Apache (как и большинство сайтов), потому давайте немного поговорим о технической части вопроса внедрения переадресации 301 в Apache.

Сначала немного теории

В терминах сайтов, редирект – это способ автоматической переадресации конечного пользователя с одного адреса URL на другой. В то время как с технической стороны существует несколько способов осуществления переадресации, для задач, связанных с поисковой оптимизацией (SEO), мы рекомендуем использование постоянным редиректом 301 HTTP.

В отличие от используемой по умолчанию временной переадресации 302 HTTP, 301 показывает, что старый, привязанный URL больше не используется (тогда, как 302 указывает, что старый временно не используется, но в будущем он должен снова появиться).

Разница между 301 и 302 особенно важна при сканировании сайта поисковыми системами. Когда сканер поисковика обнаруживает ссылку на ваш сайт, адрес которого постоянно настроен на переадресацию, то веб-сервер взаимодействует со статусом кода 301, а затем переадресовывает пользователя на новый URL. Поисковые системы не только принимают перенаправление на новый URL, но и переносят значение показателей страницы со старого URL на новую страницу редиректа (это вторая особенность такого процесса, которая очень важна для SEO оптимизации, которую нельзя выполнить, используя 302).

Во всех примерах указан домен данного сайта, не забудьте заменить его на адрес вашего сайта.

Сравнение редирект 301 и канонический rel=”canonical”

Например:

Смысл тега rel=canonical в том, чтобы сообщить поисковой машине единый целый адрес контента страницы. Это очень полезно, когда сайт использует динамические переменные атрибутов для URL-ов. Динамические URL могут способствовать индексации нескольких версий URL для каждой отдельной страницы, что выражается в (а это поисковики просто ненавидят!)

Хотя использование тега с атрибутом rel=canonical и полезно для страницы сайта, но это не является надежной заменой переадресации 301. Здесь есть несколько причин:

Тег rel=canonical до сих пор рассматривается поисковыми машинами как полунамеки, а не как конкретные директивы к исполнению. Тогда как редирект 301 воспринимается как конкретная инструкция. И напоследок, в отличие от редиректа 301, которая может быть сконфигурирована в одном файле для всего сайта, код тега rel=canonical нужно будет вставить на каждой страничке.

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

Мы рекомендуем рассмотреть использование тега rel=canonical, чтобы минимизировать дублирование индексированного контента. Независимо от стандартных причин переназначения функций и значений поискового индекса старого URL на новый, мы рекомендуем придерживаться использования проверенного способа – переадресации 301.

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

На веб-сервере Apache редирект 301 можно выполнить через коды скрипта в одном из двух файлов с текстовой конфигурацией: или.htaccess (для директорий, представляющих отдельные сайты на сервере), или httpd.conf (в корневом каталоге инсталлятора Apache). Обычно используется способ с изменением конфигурации., потому рассмотрим его более подробно.

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

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

  • Включить модуль Apache mod_rewrite.
  • Включить ReWriteEngine в модуле mod_rewrite.

Чтобы сделать это, добавьте эти две строки кода:

Options +FollowSymLinks RewriteEngine on

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

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

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

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

Redirect 301 /staraja.html http://www..html

В файле. htaccess можно вставить любое количество строк переадресации.

Редирект 301 всей директории и всех файлов на другой URL

Если вы переделали архитектурный дизайн сайта и переименовали директорию, необходимо выполнить переадресацию 301 на всю эту директорию. Сделать это так:

RedirectMatch 301 ^/oldname/ http://www.сайт/newname/

Переадресация 301 доменного имени на другой URL

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

RedirectMatch 301 ^(.*)$ http://www.сайт

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

Переадресация 301 для канонизации на другой URL

Так как поисковые машины индексируют URL-лы, то имея разные URL-лы, которые перенаправляют для индексации на страницы с одинаковым контентом, это может повлиять на значение PageRank. Безусловно, для оптимизации такое положение не самое лучшее! Суть в том, что если вы хотите присоединить PageRank к одному (каноническому) URL, то для оптимизации поиска нужно обратить внимание на контент страниц сайта.
Когда вы изучите лучшие примеры канонизации, вы захотите применить ее на своем сайте. Это означает, что вы должны учитывать все возможные альтернативы переадресации URL на канонический URL. Используйте следующий пример кода для главной страницы сайта:

RewriteCond %{HTTP_HOST} ^web-profy\.com RewriteRule ^(.*)$ http://www..(html|php|htm)\ HTTP/ RewriteRule ^(([^/]+/)*)(default|main|index)\.(html|php|htm)$ http://www.сайт/$1

Первый блок из двух строк перенаправляет URL-лы, у которых опущены префиксы «www.», на адрес домашней страницы, например, “www.xyz.com”..сайт/.

Второй блок кода перенаправляет URL-лы указанных страниц на те адреса, которые указаны по умолчанию. Такой код гарантирует, что любой URL домашней страницы, имеющий несколько вариантов своего написания и прямых ссылок, как default.htm или index.html, будут перенаправлены на каноническую страницу URL, такую как, http://сайт

Документирование и тестирование работы

# Redirect this entire domain, abc..*)$ http://www.сайт

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

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

Поиск и устранение неисправностей

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

Прежде всего, если переадресация закодирована в вашем файле.htaccess и оно записано корректно, но не работает, то проверьте состояние установки расширения mod_rewrite в Apache. Этот модуль обычно устанавливается по умолчанию, но если его там нет, то кодировка.htaccess, приведенная выше, работать не будет. Также убедитесь, что вы добавили две строки кода, которые разрешают работу модуля mod_rewrite и ReWriteEngine.

Кроме того, заметим, что использование в строках RewriteCond показывает о несоответствии входных данных с установленными характеристиками. Если вы упустите этот момент, адреса URL-ов с заглавными и строчными буквами могут не так работать, как ожидалось. Заметим, что использование L в коде говорит о том, что файл движка воспринимается как последняя строчка кода всего процесса подтверждения ввода данных. Если у вас противоречивая конфигурация кода в.htaccess, используйте код L в строке, обозначенной как приоритетной.

И напоследок отметим, что частое использование переадресации 301 не хорошо сказывается на здоровье всего сайта. Хоть она и очень полезна, но вы должны обновлять входящие ссылки сайта на правильные URL-лы. Игнорируя ваши старые входящие ссылки и используя для перехода через них многократно переадресацию 301 (301, затем 301, затем еще раз 301), вы увеличиваете время для загрузки сайта, что плохо сказывается на продвижении сайта. И если переадресаций будет очень много, то сканеры могут просто не дойти до целевого сайта. Если такое случается, то это вредит вашему сайту продвигаться в поисковой системе. Также, если вы обновляете ссылки вашего сайта, убедитесь, что обновляются и файлы sitemap.xml новыми обновленными URL-ми.

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

Случается такое, что веб-страница или весь сайт целиком переезжает на новый URL-адрес навсегда. В этом случае необходимо прописывать 301 редирект. Что это? 301 редирект — это перенаправление посетителей и поисковых роботов с одного URL-адреса на другой.

301 редирект обычно прописывается в следующих случаях:

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

    301 редирект замечателен тем, что он передает pr-страниц и сайта, а соответственно и ссылочный вес новому URL. Но зато он не передает наложенные на старый домен санкции со стороны поисковых систем, что вдвойне приятно.

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

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

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

    • ^ — ограничение слева;
    • $ — ограничение справа;
    • * — 0 и более символов;
    • + — 1 и более символов;
    • . — любой символ;
    • \ — экранирование;
    • () — переменная;
    • — диапазон значений.

    Существуют различные способы того, как сделать 301 редирект. Лично я, как и многие другие вебмастера, настраиваю его через файл.htaccess. Данный файл есть практически у каждой популярной CMS, и находится он в корне вашего сайта. Скачать.htaccess можно через при помощи клиента FileZila:

    Файл.htaccess следует открыть текстовым редактором, к примеру, Notepad++. Поверх всех кодов редиректов вам следует прописать следующую строку:

    RewriteEngine On

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

    Многие ошибочно полагают, что можно обойтись и без 301 редиректа. Я могу вам сказать, что он необходим при оптимизации практически каждого сайта. К примеру, абсолютно каждый сайт изначально доступен по двум адресам — с www и без www. Беда в том, что это приводит к размыванию ссылочной массы. Объясню почему. Другим сайтам абсолютно все равно, какой из двух вариантов написания вашего домена является основным. Если они будут ставить на вас ссылки, то в адресе могут прописывать как вариант с www, так и без www. Ссылочная масса в итоге будет размыта, а поисковики в любом случае будут индексировать только один вариант. Когда-то так они вообще воспринимали их как совершенно разные сайты.

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

    С www на без www:

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

    С без www на www:

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

    Если приведенные выше коды редиректа не сработают, то воспользуйтесь следующей записью для редиректа с www на без www:

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

    Помните, что вместо site.ru нужно прописывать домен вашего сайта. После проделанных действий сохраните файл.htaccess и закачайте его на сервер, заменив им старый файл.

    301 редирект очень часто выручает меня, когда я борюсь с дублями страниц сайта. А это я делаю практически каждый раз, когда выполняю внутреннюю оптимизацию очередного сайта. Лично я еще не встречал CMS, которая бы не генерировала дубли. Хотя если речь идет о небольшом сайте, то бывают исключения. Понятия не имеете, о чем я сейчас говорю? Тогда подписывайтесь на , вскоре я напишу о дублях целую статью.

    Бывает такое, что страница сайта доступна сразу по двум URL-адресам вида: http://site.ru/category/page.html и http://site.ru/page.html. В данном случае идет речь о дублях. К примеру, мы хотим, чтобы страница была доступна только по адресу второго вида. В таком случае для избавления от дубля необходимо прописать следующий редирект:

    RewriteRule ^(.*)category/page.html$ http://site.ru/page.html

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

    RewriteRule ^(.*)old-page.html$ http://site.ru/new-page.html

    Если приведенный выше код редиректа не сработает, попробуйте следующий:

    RewriteRule ^old-page.html$ http://site.ru/new-page.html

    Или такой:

    RewriteRule ^old-page.html$ /new-page.html

    Если требуется сделать редирект со старого URL-адреса на кириллице на новый URL-адрес (хоть на кириллице, хоть на латинице), то запись будет иметь вид:

    RewriteRule ^старый-урл.html /new-page.html

    Как вы понимаете, выше мы рассматривали редиректы с одного URL на другой в пределах одного сайта . Для этого мы использовали mod_rewrite и директиву RewriteRule. Но можно обойтись и более простым вариантом записи редиректа при помощи директивы Redirect:

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

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

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

    RewriteEngine on RewriteCond %{HTTP_HOST} ^www\.old-domen\.ru$ RewriteRule ^(.*)$ http://new-domen.ru/$1 RewriteCond %{HTTP_HOST} ^old-domen\.ru$ RewriteRule ^(.*)$ http://new-domen.ru/$1

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

    Redirect 301 / http://new-domen.ru

    Можно прописать 301 редирект URL с параметром на любую другую страницу сайта , к примеру, главную:

    RewriteCond %{QUERY_STRING} ^cPath=373_703 RewriteRule ^index\.php$ http://site.ru/?

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

    Редирект с site.ru/index.php на site.ru (избавляемся от дубля главной страницы):

    RewriteCond %{THE_REQUEST} ^{3,9}\ /index\.php\ HTTP/ RewriteRule ^index\.php$ http://site.ru/

    В результате наличия у главной страницы сайта дубля вида site.ru/index.php аналогичные дубли могут появляться и у внутренних страниц сайта, к примеру, site.ru/index.php/page.html является дублем страницы site.ru/page.html. В данном случае все дубли такого вида разом можно устранить при помощи редиректа:

    RewriteRule ^index\.php/(.*)$ /$1

    Если у главной страницы вашего сайта есть дубль вида site.ru/main.html , то следует прописать следующий редирект:

    RewriteEngine On RewriteCond %{THE_REQUEST} ^{3,9}\ /main\.html\ HTTP/ RewriteRule ^main\.html$ http://vash-sait.ru/

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

    Redirect 301 /main.html http://site.ru/

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

    RewriteCond %{REQUEST_URI} (.*/[^/.]+)($|\?) RewriteRule .* %1.html RewriteRule ^(.*)/$ /$1.html

    Если же наоборот вы хотите, чтобы все внутренние страницы сайта имели адрес без.html на конце , то есть адрес вида site.ru/page, то следует прописать редирект:

    RewriteCond %{REQUEST_URI} \.html$ RewriteRule ^(.*)\.html$ /$1

    Если стоит задача редиректа с URL-адресов с.htm на конце на адреса с.html на конце , то в.htaccess следует добавить следующую запись:

    RewriteBase / RewriteRule ^(.*)\.htm$ $1.html

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

    RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_URI} !\..+$ RewriteCond %{REQUEST_URI} !/$ RewriteRule (.*) http://www.site.ru/$1/

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

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

    Чтобы прописать редирект с URL-адреса с параметром вида http://site.ru/?page_id=111, добавьте в.htaccess следующее:

    RewriteCond %{QUERY_STRING} page_id=111 RewriteRule ^ http://site.ru/new-page/

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

    RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI}

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

    Как проверить 301 редирект

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

    Чтобы окончательно убедиться в том, что 301 редирект настроен верно, рекомендую также проверить ответ сервера при помощи специальных сервисов, к примеру, 2ip.ru , а еще лучше воспользуйтесь программой Netpeak Spider, при помощи которой можно узнать еще и много другой информации о сайте. Ответ сервера должен быть «301 » или же «301 MovedPermanently -> 200 OK».

    Надеюсь, теперь Вы поняли, как правильно настраивать 301 редирект. Выше я привел достаточное количество различных примеров. Если не сработает один тип записи редиректа, скорее всего сработает другой. Пробуйте. От чего зависит, какая именно запись редиректа сработает, точно сказать не могу, так как не являюсь программистом. Возможно, от CMS или настроек сервера. Также иногда влияет расположение кода редиректа в файле.htaccess. Если редирект не срабатывает, попробуйте перенести его код чуть выше по файлу. На этом у меня все. Успехов в оптимизации сайтов!

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

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

    Что такое перенаправление 301?

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

    Инструмент для - файл.htaccess

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

    Это описание возможностей данного файла в общих чертах. На самом деле его функционал ещё более расширенный. Файл не имеет названия и пишется как.htaccess. Точка в самом начале является обязательной.

    Процедура создания файла.htaccess

    Если в корневой папке сайта отсутствует данный файл, его можно очень легко создать собственными силами. Один из самых быстрых способов создания - использование FTP-клиента. Наиболее удобный из них - FileZilla.

    Для создания нужно перейти в корневой каталог своего интернет-проекта - нажать в пустом месте правую кнопку компьютерной мыши - выбрать пункт "Создать новый файл" - ввести имя.htaccess - нажать кнопку OK. После этих действий созданный файл можно будет отредактировать. Его открытие можно произвести любым редактором текста.

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

    Итак, создан либо найден файл.htaccess, редирект 301 при помощи его создать будет легко. Однако прежде всего нужно определиться, для чего он нужен.

    Самый популярный случай, когда может пригодиться 301 редирект

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

    Это объясняется тем, что у любого сайта в сети Интернет только один тип доменного имени с www либо без него может быть главным. Другой вариант же будет являться зеркалом сайта. Главное зеркало интернет-ресурса расписывается в файле robots.txt при помощи директивы Host. Помимо этого файла, главный вариант домена следует указать в "Яндекс.Вебмастере". Многие поисковые системы хорошо относятся к такому инструменту, как 301 редирект. "Яндекс" не является этому исключением.

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

    Значение настройки зеркал сайта

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

    Сам префикс www в обозначении уже давным-давно должен был уйти в небытие. Но тем не менее в сети Интернет всё ещё существует много ресурсов с www в названии. Для поисковиков домены с www и без него - два различных адреса. Да и многие пользователи при поиске конкретного интернет-проекта вбивают в адресную строку вариант с www. Поэтому этот префикс пока что имеет место быть. Исходя из этого факта, настройка зеркал является необходимым действием. Да и руководство, как настроить редирект 301, тоже является обязательным к изучению, чтобы ваш интернет-проект успешно индексировался в поисковых системах.

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

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

    Будут разделяться между доменами с www и без него в прямой зависимости от того, как на ваш ресурс будут ссылаться другие пользователи и сайты. Это говорит о том, что ваш интернет-проект потеряет часть ссылок, что негативно скажется на его посещаемости и месте в поисковой выдаче. Однако это не самая главная проблема.

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

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

    Для того чтобы избежать такой ситуации, существует файл.htaccess. Редирект 301, прописанный в нём, способен решить проблему разделения ресурса по доменам с www и с его отсутствием.

    Редирект с домена www на без префикса и наоборот

    Как производится настройка редиректа в таком случае. Тут всё просто. Необходимо открыть файл.htaccess и прописать в него приведённый ниже скрипт.

    Редирект с домена www на без него:

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

    И по-другому:

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

    Нужно принять во внимание, что вместо moydomen.com необходимо указать адрес своего интернет-ресурса в обоих случаях!

    Следует сохранить файл.htaccess и перенести его в корневую папку с последующим замещением прошлого файла. Теперь посетитель при любом вбивании адреса сайта (хоть с http, хоть без него, хоть с www, хоть без него), будет во всех случаях перенаправляться на главную страницу. Мы рассмотрели, как настроить 301 редирект на с www без www. Давайте теперь разберёмся с остальными способами его применения.

    Переход с одного домена интернет-проекта на другой

    Подобной схемой редиректа, которая приведена выше, следует пользоваться при переходе с одного домена интернет-проекта на другой. Для демонстрации приведём пример. Допустим, следует переехать с домена moysait-1.com на moysait-2.com. В таком случае следует записать в файле.htaccess код:

    RewriteEngine On
    RewriteCond %{HTTP_HOST} moysait-1.com
    RewriteRule (.*) http://moysait-2.com/$1 .

    Смена ссылок ЧПУ и редирект при этом

    Временами возникает необходимость сменить Вполне возможно, сложилась такая ситуация, что было решено поменять весь раздел на своём ресурсе. Либо же владелец сайта ничего не знал о ссылках ЧПУ, а блог уже существовал и наполнялся материалами. В этом случае может помочь перенаправление. Как настроить 301 редирект для такого случая? Важно, что при таком положении дел, все показатели страниц (ссылки, их вес в поисковой выдаче), останутся прежними.

    Приведём простой пример. Было решено сменить название страницы с moya_infa.html на obo_mne.html. В таком случае нужно записать в.htaccess код: redirect 301 moya_infa.html http://www.moydomen.com/obo_mne.html.

    Подобным образом производится и редирект 301 со страницы на страницу.

    Перенаправление при смене расширения файла

    Приведём ещё один пример. Веб-мастеру необходимо сменить расширение у файла moya_stranichka.html на moya_stranichka.php. Подобно прошлому пункту, прописываем в.htaccess такой код: redirect 301 moya_stranichka.html http://www.moydomen.com/moya_stranichka.php.

    Редирект при партнёрских программах

    Например, необходимо перенаправить посетителя сайта на страницу с партнёркой. Сама ссылка партнёрской программы выглядит как www.partner.com/?ref=16011. Заметив такую ссылку, многие посетители ресурса не будут переходить по ней, заранее догадавшись о ваших намерениях.

    Для придания ссылке надлежащего вида нужно создать отдельную страничку, как пример dlya_druzei.html, с которой будет производиться редирект на страничку с партнёрской программой. Осталось лишь отредактировать файл.htaccess: redirect 301 dlya_druzei.html http://www.partner.com/?ref=16011.

    Как произвести редирект 301 в CMS Joomla

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

    Давайте произведём настройку для перенаправлений по всем страницам вашего интернет-проекта. Прежде всего, в каталоге нужно отыскать файл htaccess.txt и дать ему правильное название.htaccess. После этого в админке следует выставить в настройках перенаправлений включение ЧПУ (SEF) и поставить галочку на перенаправление URL.

    Затем следует открыть файл.htaccess и прописать в нём правила для нужных перенаправлений.

    Редирект с помощью PHP

    Если по каким-либо причинам доступ к файлу.htaccess не существует либо закрыт, есть способ сделать по-другому редирект 301. PHP в этом поможет.

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

    15. ASP редиректы

    17. ASP.NET редирект
    private void Page_Load(object sender, System.EventArgs e) { Response.Status = “301 Moved Permanently”; Response.AddHeader(“Location”,“https://new.com”); } 18. ColdFusion редирект
    19. JSP (Java) редирект
    20. CGI PERL
    $q = new CGI; print $q->redirect(“https://new.com/”); Ruby on Rails def old_action headers[“Status”] = “301 Moved Permanently” redirect_to “https://new.com/”

    Также существуют разные рекомендации от поисковых систем, для реализации 301 редиректа. Я рекомендую использовать рекомендации Google, в которых очень подробно изложены рекомендации о том, как правильно настроить 301 редирект .

    Для размещения 301 переадресации на серверах Apache, достаточно изменить, как описано выше файл.htaccess. Если вы не понимаете, как это работает и незадачливые символы в описании выше для вас большая загадка — обратитесь к хостинг-провайдеру или напишите вопрос в комментария.

    Как сделать 301 редирект (переадресацию) в WordPress с помощью плагина

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

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

    В целом плагин для WordPress вполне меня устраивает и по сей день.

    Рассмотрим некоторые пояснения связанные с 310 редиректом

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

    ** 303-я ошибка указывает на временный путь переадресации.

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

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

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

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

    Почему так происходит?

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

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

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

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

    Влияние 301-го редиректа на seo продвижение

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

    2. При склейке адресов, новый url получает полный вес страницы, ссылочную массу и такие значения, как ТИЦ.
    Подобный редирект — это наилучшее решение при переносе сайта на новую систему управления контента, если вы не хотите потерять позиции и рейтинг сайта. Мой seo-блог использует несколько видов 301 редиректа для перенаправления.

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