Htaccess redirect 301 с главной на внутреннюю. Перенаправление с домена с www на без www и наоборот

До тех пор, пока у вас есть доступ к директории своего сайта на сервере, такие действия не составят особого труда. Будем считать, что ваш сайт работает на веб-сервере 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. Если редирект не срабатывает, попробуйте перенести его код чуть выше по файлу. На этом у меня все. Успехов в оптимизации сайтов!

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

    Собственно, давайте разбираться в вариантах сделать редирект (переадресацию) правильно.

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

    Если ваш сервер (или хостинг) использует apache, переадресацию можно выполнить, через файл. htaccess. Этот способ, по-моему, самый простой и удобный из всех мною виденных. Важно! Не забудьте включить модули mod_alias (для поддержки правил Redirect, RedirectPermanent и RedirectMatch) и mod_rewrite в php.ini.

    1. Простая переадресация со старых страниц на новые: Redirect 301 /old/ http:// domain.com/new/ или Redirect permanent /old/ http:// domain.com/new/

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

    2. 301 редирект в.htaccess для русскоязычных ссылок

    Единственная разница, которая заняла у меня кучу времени, это потребность в точности сохранения документа в формате uft-8 без БОМ , что является очень важным моментом. Если вы сохраните в другом формате, вероятнее всего ваше перенаправление работать не будет.

    В остальном все также:

    3. Редирект с помощью RedirectMatch

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

    RedirectMatch /(.*).php$ /$1.aspx

    4. Перенаправление домена с www на не-www
    Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTP_HOST} ^www.(.*) RewriteRule ^(.*)$ http://%1/$1

    еще вариант в более простом виде:

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

    5. Редирект запросов без www на с-www Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTP_HOST} ^domain.com$ RewriteRule ^(.*)$ https://domain.com/$1

    так же решает аналогичную задачу:

    RewriteEngine On RewriteCond %{HTTP_HOST} !^www.(.*) RewriteRule ^(.*)$ https://%1/$1

    6. Редирект ссылок со слешем на без для всего сайта RewriteCond %{REQUEST_URI} !\? RewriteCond %{REQUEST_URI} !\& RewriteCond %{REQUEST_URI} !\= RewriteCond %{REQUEST_URI} !\. RewriteCond %{REQUEST_URI} ![^\/]$ RewriteRule ^(.*)\/$ /$1 7. 301 редирект как в пункте 6, только наоборот RewriteCond %{REQUEST_URI} !\? RewriteCond %{REQUEST_URI} !\& RewriteCond %{REQUEST_URI} !\= RewriteCond %{REQUEST_URI} !\. RewriteCond %{REQUEST_URI} !\/$ RewriteRule ^(.*[^\/])$ /$1/ 8. Убираем слэш в конце главной ссылки если она без www RewriteCond %{REQUEST_URI} !\? RewriteCond %{REQUEST_URI} !\& RewriteCond %{REQUEST_URI} !\= RewriteCond %{REQUEST_URI} !\. RewriteCond %{REQUEST_URI} !\/$ RewriteCond %{HTTP_HOST} ^www\.(.*)$ RewriteRule ^(.*)$ http://%1/$1/ RewriteCond %{REQUEST_URI} !\? RewriteCond %{REQUEST_URI} !\& RewriteCond %{REQUEST_URI} !\= RewriteCond %{REQUEST_URI} !\. RewriteCond %{REQUEST_URI} ![^\/]$ RewriteCond %{HTTP_HOST} ^www\.(.*)$ RewriteRule ^(.*)$ http://%1/$1 RewriteCond %{REQUEST_URI} !\? RewriteCond %{REQUEST_URI} !\& RewriteCond %{REQUEST_URI} !\= RewriteCond %{REQUEST_URI} !\. RewriteCond %{REQUEST_URI} !\/$ RewriteCond %{HTTP_HOST} ^([^www].*)$ RewriteRule ^(.*)$ http://%1/$1/ 9. Убираем слэш в конце главное ссылки, если она с www RewriteCond %{REQUEST_URI} !\? RewriteCond %{REQUEST_URI} !\& RewriteCond %{REQUEST_URI} !\= RewriteCond %{REQUEST_URI} !\. RewriteCond %{REQUEST_URI} !\/$ RewriteCond %{HTTP_HOST} ^www\.(.*)$ RewriteRule ^(.*)$ http://www.%1/$1/ RewriteCond %{REQUEST_URI} !\? RewriteCond %{REQUEST_URI} !\& RewriteCond %{REQUEST_URI} !\= RewriteCond %{REQUEST_URI} !\. RewriteCond %{REQUEST_URI} !\/$ RewriteCond %{HTTP_HOST} ^([^www].*)$ RewriteRule ^(.*)$ http://www.%1/$1/ RewriteCond %{REQUEST_URI} !\? RewriteCond %{REQUEST_URI} !\& RewriteCond %{REQUEST_URI} !\= RewriteCond %{REQUEST_URI} !\. RewriteCond %{REQUEST_URI} ![^\/]$ RewriteCond %{HTTP_HOST} ^([^www].*)$ RewriteRule ^(.*)$ http://www.%1/$1 10. Убираем с помощью правильного перенаправления /index.php (без GET) RewriteCond %{REQUEST_URI} /index.php RewriteCond %{QUERY_STRING} ^\z RewriteRule ^(.*)$ http://site.ru/? 11. 301 редирект для всех адресов где есть index.php RewriteCond %{REQUEST_URI} /index.php RewriteRule ^(.*)$ http://site.ru/ 12. Делаем переадресацию с динамического url на статический

    вариант с GET

    RewriteCond %{QUERY_STRING} ^id=229 RewriteRule ^.*$ /supermodel/?

    вариант без GET

    RewriteCond %{REQUEST_URI} /test/ RewriteCond %{QUERY_STRING} ^id=229 RewriteRule ^.*$ /supermodel/?

    13. Делаем переадресацию всех страниц домена на один url другого домена RewriteCond %{REQUEST_URI} (.*) RewriteRule ^(.*)$ http://site.ru/ 14. Редиректы для SSL (перенаправление с http на https и наоборот)

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

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

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

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

    HTTP/1.1 301 Moved Permanently Location: https://new.com/new-k/new.htm PHP редирект

    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 редиректа для перенаправления.

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

    • Разместил Николай Коротков
    • Дата: 29 ноября 2013 в 09:23

    И снова здравствуйте!

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

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

    А теперь обо всем по порядку. Что такое 301 редирект? Это обычное перенаправление посетителя на другую страницу или домен (о том, что такое домен и как его зарегистрировать, читайте ). Сразу скажу, в этой статье я не буду рассматривать различные скрипты и сложные коды, я лишь покажу несколько простеньких вариантов перенаправления, которые любому веб-мастеру будет знать более чем достаточно.

    Как настроить 301 редирект? Редирект.htaccess

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

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

    Если вдруг в корневом каталоге вашего сайта не окажется данного файла, создайте его самостоятельно. Самый простой способ создания файла.htaccess, воспользоваться FTP — клиентом FileZilla (о нем я писал ):

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

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

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

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

    Начнем с самого главного!

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

    Дело в том, что у любого ресурса в сети, один из вариантов доменного имени (с www или без www) должен быть главным. Вот простой пример относительно моего блога. Главным его доменом является http://сайт , а www.сайт — является его зеркалом. Главное зеркало блога, прописывается в файле robots.txt для Яндекса в виде директивы Host.

    Если у вас нет файла robots.txt, обязательно изучите вот , там я все подробно расписал. Robots.txt в обязательном порядке должен присутствовать на каждом ресурсе. Иначе блог обречен на неудачу! Помимо robots.txt, вам необходимо указать главное зеркало сайта в Яндекс.Вебмастер.

    Но так как в robots.txt оно уже указано, то я вам рекомендую оставить все на усмотрение робота. Для этого перейдите во вкладку «Настройки индексирования/Главное зеркало» и поставьте кругляшек напротив пункта «На усмотрение робота»:

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

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

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

    Что касается приставки www, то она давным-давно должна была отмереть. Но так как в сети до сих пор существует множество ресурсов с префиксом www, то она имеет место быть. Для поисковых систем http://сайт и www.сайт это два абсолютно разных адреса! Да и пользователи частенько в строку браузера вбивают адрес ресурса именно с www, поэтому отмирать ей пока рановато. Исходя из этого, настройки зеркала, просто необходимы!

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

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

    1. Все внешние ссылки будут распределяться между адресами с www и без www, в зависимости от того, как на вас будут ссылаться сторонние ресурсы или пользователи. Получается, что ваш блог будет лишен части ссылок, что отрицательно скажется на его продвижении и посещаемости. Но это не самое страшное!

    2. Все прекрасно знают, что поисковые системы постоянно борются за уникальность! Они ненавидят дублированный контент и жестоко наказывают сайты с одинаковым содержимым. А теперь представьте такую ситуацию, что ваш блог изначально был проиндексирован с приставкой www, но по мере развития ресурса, сайт без префикса www, получил большую популярность (о нем чаще упоминают и ссылаются на него).

    Естественно, вы об этом даже и не догадываетесь и продолжаете развивать свой ресурс. Со временем он обрастет уникальным контентом, естественными ссылками и комментариями. Дела идут в гору, ну как тут не радоваться? Но вот беда! Поисковые системы, наблюдая за сайтом без приставки www, поставили на нем клеймо, за не уникальность! В итоге он перестанет индексироваться, а со временем полностью выпадет из индекса!

    Вот это будет страшно и очень обидно! И чтобы избежать таких печальных ситуаций и был придуман 301 редирект.

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

    Как настроить 301 редирект в этом случае? Все очень просто. Открываем файл.htaccess и копируем в него представленный ниже код.

    Перенаправление с www на без www:

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

    и наоборот:

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

    Обратите внимание, что вместо vashdomen, в обоих случаях нужно указать доменное имя своего блога!

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

    Переезд с одного домена на другой

    Аналогичной схемой редиректа 301, приведенной выше, можно воспользоваться при переезде с одного домена на другой. Но все же для наглядности приведу пример. Вы переезжаете с домена sait-1.ru на домен sait-2.com . В этом случае прописываем в файле.htaccess следующее:

    RewriteEngine On RewriteCond %{HTTP_HOST} sait-1.ru RewriteRule (.*) http://sait-2.com/$1
    Редирект при изменении ЧПУ ссылок

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

    Приведу простой пример. Вы решили изменить название страницы. Старое имя страницы имело вид obo-mne.html , новое имя ob-avtore.html . В этом случае вам нужно будет прописать в файле.htaccess следующую конструкцию:

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

    Допустим, вы решили перенаправить пользователя на страницу с партнерской программой. Код партнерки выглядит следующим образом: http://www.partnerka.ru/?ref=35677. Увидев такую ссылку, большинство пользователей не будут по ней переходить, заранее зная о ваших намерениях.

    Для того, чтобы ссылка приняла привлекательный вид, вам необходимо создать отдельную страницу, например dlya-partnerov.html, с которой и будет идти перенаправление пользователя на страницу с партнерской программой. Теперь останется разместить ссылку на страницу vashdomen.ru/dlya-partnerov.html, а в файле.htaccess прописать следующее:

    redirect 301 dlya-partnerov.html http://www.partnerka.ru/?ref=35677

    Но лично я для таких целей предпочитаю пользоваться несложным скриптом, о котором рассказывал (способ №3).

    На этом пожалуй все. Теперь вы знаете, как настроить 301 редирект и у вас не должно возникнуть с этим проблем. Я вам показал наиболее простой вариант 301 редиректа через.htaccess, о котором желательно знать каждому веб-мастеру. Ну и последнее, что хочется сказать, всегда проверяйте редиректы на работоспособность. На этом все, всем пока!

    Как вам статья? А вы используете 301 редирект? Возможно, вам известны более легкие способы перенаправления? Жду ваши комментарии!

    Понравилась статья? Поделись с друзьями!

    Каждому комментатору книга в подарок!

    Книга включает в себя подробное описание самых эффективных методов продвижения вашего ресурса!


    60 комментариев

  • 29 ноября 2013 15:20

    Прочитал и нифига не понял...Для таких как я остается только одно, найти человека, сказать, чтобы настроил редирект 301 и довериться, что он все сделал =))))

    Значит все-таки толково не получилось объяснить...

    Нет, нет, всё очень толково и понятно написано — спасибо!

    Просто многие ленятся выполнять рекомендации, многие не придают своим проектам серьёзного значения, вот и не доводят до ума. А по некоторым вопросам есть противоречивые рекомендации. Так, в robots.txt указание о главном зеркале сайта рекомендуют помещать в начало файла, затем идёт пустая строка, затем остальные данные. Насколько это верно не берусь судить, но автор этой рекомендации активно настаивает на таком порядке заполнения robots.txt, и где здесь начинающим разобраться?

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

    Тёзка, не о Вас речь!

    Вы специалист СВОЕГО дела, которым настоятельно рекомендуется рутинно-техническую работу делегировать.

    Так что — творите, и не заморачивайтесь на то, что Вас отвлекает от основного дела.

    Речь о том, что есть много людей, которые делают сайты «что бы было», или «потом доделаю». Вот и я не реализовал полностью даже то, что уже знаю: мешает основная работа, прочие дела... Да причин всегда найдётся масса, что бы не делать. А ведь это самая большая ошибка, когда человек не сделал одного, а уже ищет другое. Накопленные и не применённые знания бесполезны, увы.

  • 30 ноября 2013 11:12
  • 30 ноября 2013 16:02
  • Анна 30 ноября 2013 19:59

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

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

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

    Это получается, кто с www не пишет, все равно попадает на сайт?

    Я просто думал, что это функционал самой CMS, и не думал об этом никогда...

    Александр

    Верно! Для этих целей и настраивается 301 редирект. В самой CMS этого не заложено.

    А как я узнаю, если это перенаправление перестанет работать? Сейчас все отлично!

  • Елена 1 февраля 2014 22:55

    Что-то писала комент, а не отправился — жаль. тот длиннее был.

    В общем я читала, читала и ничего до меня не дошло.

    Подскажите, как сделать редирект каждой страницы?

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

    Покажите пример на своем сайте одной страницы на другой — как тут правильно ставить, а то я делала (инфу нашла в инете) и ничего не вышло.

    Redirect 301 /старая страница.html site.com/новая страница.html

    Redirect permanent /старая страница.html site.com/новая страница.com/

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

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

    redirect 301 vse-stati-bloga.html сайт/moi-kursy

  • Павел 25 марта 2014 23:37

    А у меня в файле.htacces прописан только вот такой код

    # BEGIN WordPress

    RewriteEngine On

    RewriteRule . /index.php [L]

    что мне изменить? Файл составлен не правильно?

  • 29 апреля 2014 10:39

    Николай, добрый день!

    Перевожу на wp самописный сайт визитку в 15 страниц. Сайту 3 месяца, но уже есть тиц 10, небольшая тематическая посещаемость, поэтому сносить все в ноль не хочется. Новый сайт на wp установлен и настроен, стравые странички болтаются на сервере параллельно, но пользователю не видны.

    Насколько я понимаю, мне подойдет редирект для ЧПУ, после настройки которого можно будет либо перенести старый контент, либо написать аналогичный новый и рукописную страницу можно будет с сервера снести или как?

    Подскажите, пожалуйста, тестирование редиректа — это просто переход по старому адресу, и увидеть, что все корректно открывается на новой странице? Значит ли это, что поисковики увидят это в таком же свете?

    Заранее большое спасибо!

    Здравствуйте, Ирина!

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

    Николай, благодарю за скорый ответ!

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

    Проверила код ответа сервера — там меня ждал сюрприз

    Вместо 200ОК — 301 редирект. Открыла htaccess. и чтоб Вы думали? Там стандартный, судя по всему набор:

    # BEGIN WordPress

    RewriteEngine On

    RewriteRule ^index\.php$ — [L]

    RewriteCond %{REQUEST_FILENAME} !-f

    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteRule . /index.php [L]

    Подскажите, мне, не обращая внимания на ответ сервера настроить редирект через 301 ?

    Заранее спасибо!

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

    Да, я поняла, только не совсем ясно, откуда взялся этот редирект, ведь я его не ставила и как он реализовался, если htaccess. его нет... Видимо, как -то автоматически проставился системой, после того, как я создала индексную страницу в wp, а старую рукописную удалила. Сейчас пропишу редирект на остальные страницы в htacess вручную.

    Спасибо Вам за статью.

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

    Простите, ещё забыла уточнить, куда строчку

    redirect 301 obo-mne.html vashdomen/ob-avtore

    пристроить в уже готовой конструкции

    # BEGIN WordPress

    RewriteEngine On

    RewriteRule ^index\.php$ — [L]

    RewriteCond %{REQUEST_FILENAME} !-f

    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteRule . /index.php [L]

  • Ирина 29 апреля 2014 20:26
  • Ирина 19 мая 2014 22:34

    Николай добрый вечер!

    Снова нужна Ваша помощь!

    В последний ап яндекс выбрал главным зеркалом сайт.ру с www (а так как было без www, обнулился тиц!)

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

    redirect 301 /файл.html сайт.ru/новое название рубрики/

    # BEGIN WordPress

    RewriteEngine On

    RewriteRule ^index\.php$ - [L]

    RewriteCond %{REQUEST_FILENAME} !-f

    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteRule . /index.php [L]

    Пробовала пристроить перенаправление и перед строчкой # END WordPress и в самом верху файла

    — выдает ошибку перенаправления,пишет, что оно никогда не закончится…

  • Про 301 редирект уже, наверное, сказано и пересказано множество раз в блогах, форумах и т.п. Но, как оказывается, не до всех эта информация вовремя доходит (тут я как бы намекаю на себя:). За более чем 3 года в сети я слышал про 301 редирект множество раз, иногда даже собирался его «попробовать», но давайте посмотрим фактам в лицо — так этого и не сделал. А зря! Все началось достаточно прозаически — у меня есть один сайт, который постоянно «колбасит» в плане индексации поисковиками. Вроде и ссылки там есть, и контент нормальный, а он все ни в какую не хочет стабильно работать. У меня уже почти закончились варианты подобного поведения, но тут я вспомнил про основы основ SEO и вообще продвижения — 301 редирект.

    Беглый опрос в твиттере показал, что реально я чуть ли не один «забиваю» на этот важный момент. Большинство единогласно ответило, что в обязательном порядке устанавливает 301 редирект сразу при создании сайта. Более того, тут мне недавно попросили по разработке сайта добавить этот же самый 301 редирект для них, поскольку просьба пришла от продвигающей и конторы. Учитывая все эти моменты и «намеки судьбы» я понял 301 редиректу быть!

    Зачем вообще нужен 301 редирект ? — спросите вы — есть несколько ситуаций в которых его можно применить:

  • Для склейки домена с www и без www. При этом показатели и ссылочный вес будет совмещаться, а то иногда бывает, что для домена с и без www они могут отличаться.
  • При смене домена со старого на новый 301 редирект позволит опять же сохранить показатели и ссылочное (насчет тИЦ не знаю, но PR точно).
  • При переносе страницы на сайте чтобы поисковики и посетители попадали на новую страницу вместо старой неработающей.
  • Если есть пиаристые домены со ссылками, которые по каким-то причинам вами не используются, возможно, просто некогда, то теоретически можно использовать 301 редирект на другие свои сайты. Хотя это метод такой — дополнительная возможность что ли, основные все же первые три.
  • Вообще 301 редирект нужен как для пользователей, так и для поисковых роботов — позволяет сориентировать тех и других, что есть новый сайт, домен, страница и без лишних вопросов переадресовывает их туда. Кроме того 301 редирект произведет склейку показателей сайтов и позволит не потерять позиции в поисковых системах.

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

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

    Простой редирект

    Производится в файле.htaccess или httpd.conf для Apache. Самый простой вариант простого 301 редиректа для переадресации на новый домен выглядит следующим образом:

    Redirect 301 /site1/page1.htm http://www.site2.com/page2.htm

    Вот еще парочка примеров простого 301 редиректа:

    Redirect permanent /test http://www.test.com/ Redirect permanent / http://enter.test.com/

    Здесь при попадании пользователя или робота в директорию test он перенаправится на www.test.com, все остальные попадут на enter.test.com. Для этого 301 редиректа на хостинге должны быть включены модули mod_alias (для поддержки Redirect, RedirectPermanent и RedirectMatch).

    301 редирект с помощью mod_rewrite в.htaccess

    С модулем mod_rewrite вы сталкивались достаточно часто даже не подозревая этого. В частности речь идет про постоянные ссылки (permalinks) как полезный инструмент в seo оптимизации wordpress. Если в админке настроите эти самые ссылки и после этого зайдете в файл.htaccess, то обнаружите там целый ряд правил для переадресации через директиву RewriteRule. Кроме того нужно проверить чтобы была подключена опция FollowSymLinks.

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

    Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTP_HOST} ^www.domain\.com$ RewriteRule ^(.*)$ http://domain.com/$1

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

    Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTP_HOST} !^www\.(.*) RewriteRule ^(.*)$ http://www.%1/$1

    Вообще использование www в названии сайта само по себе устарело, но иногда до сих пор встречается. Если вы создаете новый сайт, то конечно сразу указываете везде без www, но если получили «готовый продукт», то нужно смотреть как домен отображается в выдаче Google и Яндекс — такой редитект и оставляете дабы ничего кардинально не менять.

    301 редирект старого домена на новый:

    RewriteEngine on RewriteBase / RewriteRule ^rewrite\.htm$ rewrite.html

    Для замены всех.htm файлов.html файлами:

    HTTP/1.1 301 Moved Permanently Location: http://www.newdomain.ru/newdir/newpage.htm

    Для этого, например, в PHP используем:

    Данный код лучше всего вставлять в начало PHP скрипта чтобы до него ничего не выводилось (echo или print). За пояснение спасибо автору этой статьи где также найдете информацию про установку редиректа на ASP, ColdFusion и т.п., просто с php самый популярный вариант.

    Примечания по 301 редиректу

    Напоследок пару моментов по 301 редиректу, которые нужно помнить и с которым я так или иначе столкнулся:

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

    Если у вас есть что добавить по 301 редиректу — пишите:)

    P.S. Постовой. В наше время каждый день появляется множество интересных интернет проектов. Хотите знать все про стартапы тогда читайте новый увлекательный блог StartupWay.
    После аудита и оптимизации веб-проекта следует комплексная раскрутка сайтов в поисковых системах Google и Яндекс.