Заказать консультацию

+7 (3902) 26-34-06
+7 923 213-66-21

301 редирект. Как правильно настроить htaccess

×

Сообщение об ошибке

Notice: Undefined index: und в функции special_page_preprocess_page() (строка 16 в файле /home/seryak/web/blog.wtolk.ru/public_html/public/sites/all/modules/wtolk/special_page/special_page.module).
301 редирект

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

Предназначение 301 редиректа

Когда проектировался интернет , в частности протокол http и ftp, 301 редирект придумывался, что бы сообщить поисковой машине, что старая страница имеет новый адрес. И по логике вещей, все накопленные параметры старой страницы передавались новой странице в глазах поисковиков. Для чего сейчас используется 301 редирект ?

  • для перенаправления с www на без www и наоборот. Если процедура сделана неправильно, то в глазах поисковиков ваш сайт имеет полный дубликат, что плохо сказывается на уникальности контента.
  • Для смены домена у сайта (если у сайта сменился домен, вы сможете сообщить об этом поисковикам через 301 редирект)
  • Для передачи с "со слешем" на "без сослеша" (речь идет о символе "/" в адресе страницы) . Это может понадобится, так как поисковики могут считать такие страницы двумя разными страницами, с одинаковым контентом, что плохо влияет на уникальность контента. Пример таких адресов : http://wtolk.ru/razrabotka-web-saytov и http://wtolk.ru/razrabotka-web-saytov/
  • Для передачи ссылочного веса со страницы на страницу
  • Для объединения ссылочных весов нескольких страниц на одну
  • Вместо 404 кода, то есть перенаправить пользователя куда-либо со страницы с ошибкой "страница не найдена" и так далее.

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

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

На самом деле в данной ситуации, поисковая машина получает несколько сигналов :
1) Убрать старую страницу из поискового индекса ( убрать страницу из результатов поиска )
2) Прочитать страницу по новому адресу
3) Поместить ее в индекс ( поместить ее в результаты поиска )
4) Проанализировать новую страницу без учета старых параметров
5) Принять решении на основе анализа о передачи параметров старой страницы.

Между этими действиями могут пройти дни, недели или месяцы.

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

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

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

Что было сделано : поставили 301-редирект со старых страниц на новые. Потом решили сделать перенаправление с "без www" на "с www". Со временем обнаружилось, что в гугле страницы находятся и со слешем на конце и без слеша ( символ "/") , поставили редирект. На последних этапах разработки, обнаружилось что новый движок плодит дубли. Опять же стали делать перенаправление с нескольких страниц на одну . Многие разделы на сайте объединили в один , и что бы не терять ссылочную массу сделали редиректы для объединения ссылочной массы. Ну и напоследок сделали еще редирект со страниц с 404 ошибкой на главную.

Получилось, что на сайте образовалось большое количество страниц , путь к которым шел через 3, 4 а то и 5 редиректов. При чем обычному пользователю это было не заметно. И получается, что поисковая машина на каждый редирект получала 5 сигналов о различных действиях , и в итоге была "полная каша" из действий над страницами. В результате все страницы со временем вошли в поисковый индекс однако в результатах поиска появилась только половина из них. Страницы которые раньше были в топ 10 , исчезли оттуда и новые не появились. "Горе-оптимизаторы" ,что бы хоть как то "реабилитироваться" в глазах клиента, захотели закупить много ссылок что бы вывести в топ нужные страницы, и тем самым "добили сайт". Сайт был исключен из результатов поиска за ссылочный спам. На сайт были наложены санкции, и владельцу сайта нужно было потратить значительные материальные и временные ресурсы для снятие санкций. Пару раз вставал вопрос о разработке нового сайта, ввиду плохих перспектив старого.

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

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

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

Все страницы сайта вида www.site.ru будут перенаправлять на страницы вида site.ru
Для этого нужна в файле .htaccess прописать следующий код :

   RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
   RewriteRule ^ http%{ENV:protossl}://%1%{REQUEST_URI} [L,R=301]

 

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

Все страницы сайта вида site.ru будут перенаправлять на страницы вида www.site.ru
Необходимый для этого код:

  RewriteCond %{HTTP_HOST} !^www\. [NC]
  RewriteRule ^ http%{ENV:protossl}://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Важное замечание

Убедитесь, что перед вставляемым кодом есть следующая строчка : RewriteEngine on

 

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

Прикрепленные файлы: 
  • 301 редирект для мультиязычного сайта на Joomla 3 c 303 редиректом Здравствуйте, уважаемые! Прошу помочь решить следующую насущную для мультиязычного сайта на Joomla 3 и, думаю, многих других CMS, проблему: При создании нескольких языковых версий сайта средствами мультиязычности самой CMS получается следующее: http://domain.ru -с русским языком http://domain.ru/ru/-русская версия сайта(является основным языком сайта) http://domain.ru/en/-английская версия сайта http://domain.ru/de/-немецкая версия сайта и если средствами Joomla 3 удалять префикс /ru/ из адресной строки, то срабатывает 303 редирект, что есть нехорошо, т.к. для SEO нужен 301 редирект. Если же не убирать префикс в настройках Joomla 3, то будет существовать domain.ru/ru/ и domain.ru с русским языком, т.е. дубли. Как посредством .htaccess убрать префикс /ru/, т.е. сделать 301 редирект с domain.ru/ru/ -> domain.ru и чтобы в последующем переключение языков на сайте было корректным. В течение 2-x недель поиска информации в интернете опробовал разные куски кода в htaccess, но рабочего варианта так и не нашел. Распишите, пожалуйста, подробно как решить эту проблему, т.к. с этим вопросом не могут справится куча народа, как в русскоязычном сегменте интернета, так и зарубежом, либо опишите другие возможные варианты решения. Если вам несложно, то вышлите мне решение на почту myhelpers@mail.ru , чтобы быстрее смог его реализовать. Если для кого-то это тривиально, то простите за незнание! :-)
  • Доброго вам времени суток. Если мы вас правильно поняли, то вам нужно следующее правило в .htacess RewriteRule ^ru(.*)$ / [R=301,L] Вставлять после строчки RewriteEngine on Данное правило будет перенаправлять с адресов типа http://domain.ru/ru/ на http://domain.ru Отпишитесь если вам не помогло. © Вебтолк
Заказать консультацию