Htaccess редирект на www


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

301 редирект с www на без www в htaccess и директивой host

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


Сайт или блог должен обязательно иметь 301 редирект (redirect) с одного домена на другой. Он должен быть настроен таким образом, чтобы один из сайтов (с www или без www) стал бы главным. Вот, например для моего блога главным адресом является DmitriyZhilin.ru, но если в поисковой системе набрать адрес www.DmitriyZhilin.ru, то вас автоматически перебросит на DmitriyZhilin.ru. Спрашивается, зачем это придумали? И зачем это нужно?

Сейчас, я постараюсь ответить на эти вопросы.

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

Вот смотрите. Поисковые системы видят www.DmitriyZhilin.ru и DmitriyZhilin.ru, как совершенно разные сайты. К чему это приводит?

А последствия такие:

1. Разделение ссылочной массы

Внешние ссылки, которые ссылаются на ваш сайт будут автоматически разделены на 2 части. То есть смотрите, на каком то блоге, допустим, с показателем ТИЦ 50 PR 3 поставили ссылку на DmitriyZhilin.ru, а на другом ресурсе с показателями ТИЦ 1200 PR 7 поставил ссылку на www.DmitriyZhilin.ru. А я решил продвигать свой ресурс по адресу без www. Получается, что вторую жирную ссылку я теряю и будет она уже указывать не на продвигаемый мной домен, а на двойника (идентичного моему сайту, но находящемуся по другому адресу). Отсюда делаем вывод, что мы будем терять часть внешних ссылок и недополучим те бонусы, которые они дают при ранжировании. Контролировать вебмастеров на других сайтах мы не можем и они будут ставить такую ссылку, которая им нравится.


2. Уникальность контента

Возникает вопрос об уникальности контента. Не забывайте о  том, что сайт будет доступен для индексации по обоим адресам. Как вы знаете, или узнаете, авторитетные поисковые системы Яндекс, Google, Yahoo борются за уникальный контент, и на данный момент перестают индексировать абсолютно идентичные сайты, что очень и очень плохо. Объясню, как это происходит. Вот например, есть у вас домен DmitriyZhilin.ru,  на него ведет огромное количество внешних ссылок, но вот, вы публикуете новую статью и робот поисковой системы первым индексирует адрес www.DmitriyZhilin.ru, а после DmitriyZhilin.ru, отсюда получается, что DmitriyZhilin.ru является двойником (т.е. своровал контент). Ну а поисковик в свою очередь покарает вора и исключит его страницу из индекса, частое повторение такого косяка может принести и более серьезные санкции.

Плохо? Плохо, не то слово!!!!

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

Как сделать перенаправление с WWW на домен без WWW


301 редирект в файле .htaccess

Заключается данный способ в том, что нужно настроить файл .htacess. Найти его можно в корневой папке блога. Его может и не быть, а так же он может быть скрыт от вас. Сначала проверим его наличие. Осуществим мы это с помощью программы FileZilla, предоставляющей нам доступ к файлу через FTP. Качаете программу FileZilla и запускаете ее. В открывшееся окно ввести IP адрес домена  и пароль доступа, которые обычно высылает вам ваш хостиг-провайдер.

Далее необходимо открыть меню СЕРВЕР и выбрать пункт ПРИНУДИТЕЛЬНО ОТОБРАЖАТЬ СКРЫТЫЕ ФАЙЛЫ.

показать скрытый htaccess

Откройте файл .htaccess с помощью текстового редактора, например Notepap++ или Akelpad (которым пользуюсь я).  В этом файле дописываем следующий блок (адрес моего блога замените на свой):

Если вы хотите сделать не так как у меня, а настроить главным зеркалом домен с www, то ваш редирект будет выглядеть вот так:

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

Не забывайте сделать копию первоначальной версии файла.

Директива HOST


С директивой host мы уже встречались тогда, когда делали файл robots.txt. В нашем деле (обозначения главного зеркала сайта) она играет важную роль для поисковой системы Яндекс (Гугл ее не понимает). Если вы настроили этот файл по моим рекомендациям, то данная директива уже у вас имеется и показывает роботам Яндекса основное зеркало. Если же ее нет, то вам необходимо добавить одну строчку. Эта директива является внеблоковой, поэтому пишется либо в отдельной строке, не относящейся ни к какому поисковому роботу, либо указывается в блоке для yandex.

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

Так же, главное зеркало блога, можно определить не только с помощью директивы Host, но и при помощи Инструментов для вебмастеров Яндекса — это www.webmaster.yandex.ru. Раньше аналогичная возможность была и в Google, но сейчас я ее не нашел.

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

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


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

Вот например возникли у вас проблемы с вашим хостингом, или просто разонравилось доменное имя (например было plohoy-domen.ru, а захотелось ochen-horoshiy-domen.com), как сделать новое доменное имя с тем условием, чтобы статьи которые вы писали не потерялись и постоянные читатели не исчезли. Опять же в помощь вам будет 301 редирект. Открываете файл .htaccess и добавляете в него нужный блок:

Теперь если в браузере вы будете набирать адрес plohoy-domen.ru, то вас автоматически будет перебрасывать на страницу ochen-horoshiy-domen.com.

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

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

dmitriyzhilin.ru

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


Начнем с 301 редиректа в htaccess. Во-первых, он представляет из себя автоматическую переадресацию с одного адреса на другой. Он вполне может применяться в том случае, когда сайт переводится с протокола http на https, когда сайт перенастраивается с «полноразмерных» адресов на ЧПУ (т.е. было https://www.karcher.xyz/content/news/31-01-2017/razdatka, стало https://www.karcher.xyz/ razdatka), а также для «склеивания» страниц-дублей. Во-вторых, 301 редирект сообщает поисковым системам, что «ребята, имеющийся у вас адрес уже не работает, поэтому идите вон туда», а они такие «ОК, учтем». Таким образом, переадресация происходит безболезненно, без потери позиций и ссылочной массы.

Но что будет, если «Ой, да ну нафиг? Буду я еще с переадресациями заморачиваться, только время потеряю!»? Можно сделать и так, НО… история «старой» страницы будет утрачена, а «новая» будет ранжироваться «с нуля». Как следствие – потеря позиций и ссылочной массы (это в лучшем случае).

Варианты применения 301 редиректа:

  • Склейка доменов;
  • Переезд сайта на другой адрес (может пригодиться при попадании сайта под какие-либо фильтры);
  • Для увеличения показателей тИЦ, PR и увеличения трафика при покупке другого домена (настраивается редирект на ресурс, который нуждается в поднятии тИЦ и PR);
  • При смене движка сайта (в этом случае настройка 301 редиректов строго обязательна, в противном случае гарантирована полная потеря трафика);
  • при переезде с http на https;
  • склейка «дублей»

и т.д., всех причин не перечислить.

301 Редирект при смене домена основного сайта

Итак, Вы решили сменить домен. Сразу же даем готовое решение:

  • переделываем robots.txt на старом домене. Готовый текст файла:
  • настраиваем 301 редирект для всех страниц сайта (кроме файла robots.txt) с помощью приведенного ниже кода:

Всё!

301 редирект при смене адреса страницы

Постраничный редирект (когда меняется адрес страницы) осуществляется с помощью приведенного ниже кода:

Именно этот код используется при «переезде» страниц, например, на ЧПУ.

Настроить редирект с www на домен без www в htaccess

Упоминание www. в адресе домена уже давно не является актуальным. Тем не менее сайтов с www. полно. Склеивание доменов с www. и без должно производиться в строго обязательном порядке, т.к. поисковые системы воспринимают эти 2 домена как 2 разных сайта с разными тИЦ, PR, посещаемостью, ссылочной массой и всем остальным. Следовательно, один из них – оригинал, а второй – «самозванец» с «ворованным контентом». Чтобы этого не происходило – домены с www. и без необходимо «склеить» с помощью 301 редиректа. Код настройки приведен ниже.


Код редиректа с www на без www в htaccess выглядит так: 

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.site.ru$ [NC]
RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]

Теперь давайте разберемся с директивами.

RewriteEngine on/off – если выражаться простым человеческим языком – она служит выключателем 301 редиректа.

RewriteCond — в этой директиве прописываются условия для «срабатывания» следующей директивы.

RewriteRule — директива преобразования одного адреса в другой.

Настроить 301 редирект с http на https через htaccess

Переезд с http на https многие считают «современным трендом». Однако, на сегодняшний день данная мера является обязательной (хотя формально она таковой не является). И вот настал тот час, когда Вы получили SSL-сертификат, Ваш сайт уже работает и по http и по https. Все что осталось настроить в файле .htaccess 301 редирект с http на https версии страниц сайта. Код для настройки приведен ниже.

А вот код на обратный редирект с https на http. Как видите, отличие всего в 1 символ:

Редирект со страниц index.php, index.html

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


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

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

Нередки случаи, когда у главной страницы есть дубль вида

site.ru/main.html, для которого так же необходимо прописывать 301 переадресацию на site.ru:

Либо альтернативный вариант:

Redirect 301 /main.html HYPERLINK «http://site.ru/»  http://site.ru/

А вот теперь рассмотрим обратную ситуацию – когда Вы хотите склеить дубли, настроив переадресацию с site.ru на site.ru/main.html. Сделать это можно с помощью приведенного ниже кода.

Ну а если Вам важно, чтобы адреса всех внутренних страниц отображались без .html на конце, то redirect настраивается вот таким кодом:

Теперь о том как сделать редирект со страницы на страницу а именно с .htm на страницы .html. Для настройки такой переадресации достаточно добавить в .htaccess следующий код:

Редиректы с адресов со слэшами в конце и без них

Для начала рассмотрим еще один вид дублей страниц – страницы вида http://site.xyz/page и http://site.xyz/page/ — кроме слэша в конце, они ничем не отличаются. Настраивать redirect можно и с первой на вторую, и со второй на первую. Рассмотрим оба варианта:


Редирект с http://site.xyz/page на http://site.xyz/page/:

Redirect с http://site.xyz/page/ на http://site.xyz/page:

Причем абсолютно не важно, будет ли у Вас после редиректа слэш в конце адреса или нет. Главное – чтоб эти адреса были склеены с помощью 301 редиректа.

Редирект на мобильную версию сайта

Разумеется, если Ваш сайт работает на движке WordPress или Joomla, то настроить редирект на мобильную версию сайта можно с помощью плагинов.

Однако, Google является сторонником адаптивного дизайна. Следовательно, выделять отдельный домен/поддомен для мобильной версии не нужно. Т.е. в Google утверждают, что «если есть возможность обойтись без редиректов на мобильную версию – именно так и нужно поступать». 

Но что делать, если без таких редиректов все-таки не обойтись?

JavaScript редирект 

Однако, это не совсем верный способ, т.к. столь низкое разрешение далеко не у всех смартфонов, даже бюджетных. Гораздо правильнее заменить в коде число 480 на 720, большинство современных смартфонов имеет разрешение не менее, чем 1280 пикселей в высоту и 720 в ширину.

302 редирект

302 – это временная переадресация (по сути, это единственное отличие от 301 редиректа). Но где она может применяться?

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

Т.е. есть постоянный адрес (например, https://inet-market.xyz/sales/) и сегодня с него происходит редирект на страницу https://inet-market.xyz/sales/december/, т.е. на страницу с декабрьскими акциями. Ну а через несколько дней 302 redirect перенастраивается на https://inet-market.xyz/sales/new-year/, т.е. на страницу с новогодними акциями.

И в таких ситуациях 302 редирект не только уместен, но и является самым правильным решением.

Htaccess редирект на www

Основные причины применения 302 редиректа:

  • Когда основная страница находится на стадии разработки/доработки/редактировании, поэтому ее надо скрыть от глаз посетителей, настроив временный редирект на другую страницу.
  • Когда требуется, чтобы индексировалась и та страница, с которой происходит перенаправление, и та страница, куда перенаправляют;
  • Когда требуется, чтобы в данный момент пользователи видели именно новую страницу, а не старую (например, если в будущем планируется «возвращение» к «старой» странице);
  • Когда индексирование конечной страницы практически в будущем перестанет играть свою роль (т.е. когда страница создается временно);
  • «Конечная» страница будет периодически меняться.

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

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

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

ВАЖНО! Перед тем как делать выводы о том, что «что-то тут не так», почистите кэш браузера и повторите попытку.

Другой способ – воспользоваться онлайн-сервисами по проверке кода ответа сервера. Например, http://4web.su/s_redirect/. Вводим имя домена и проверяем код ответа. Если редирект настроен правильно, то код ответа будет либо 301, либо 302 (в зависимости от того, какую именно переадресацию Вы настраивали). На некоторых сервисах (кстати, 4web.su – один из них) может отображаться еще и код, который сервер отдает уже после переадресации. Единственный допустимый код в этом случае – 200 ОК.

В данном случае мы попытались проверить как работает http-версия нашего сайта. Во-первых, мы получили сообщение о том, что у нас настроен 301 редирект (т.е. постоянный), новый адрес (https-версия сайта), а также отображены 2 кода ответа — 301 Moved Permanently и 200 ОК.

Htaccess редирект на www

Если же вместо 200 ОК вылезает код 404 (как на приведенном ниже скриншоте) – значит редирект настроен неправильно.

Htaccess редирект на www

Как сделать редирект без .htaccess

Большинство программистов настраивает редиректы путем прописывания ранее приведенных кодов в файле .htaccess. Основной минус такого подхода в том, что можно неплохо «накосячить», т.е. код в файл внесли, но он почему-то не срабатывает (или срабатывает, но неправильно). Причины могут быть самыми разными – возможен косяк в самой CMS, либо код на редирект должен располагаться выше/ниже, и т.д., вариантов масса. Поэтому существуют и альтернативные способы настройки редиректа. Например, PHP или JavaScript.

PHP редирект

Во-первых, PHP-это сервероориентированный язык.

Во-вторых, редирект будет происходить на сервере, а не в браузере пользователя.

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

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

PHP-редиректы необходимо оформлять в отдельные php-файлы.

Код редиректа на примере файла index.php:

или

В зависимости от того, 301 редирект Вы хотите настроить, или 302. С помощью PHP обычно настраивается 302 редирект.

Простейший javascript-редирект

Основной минус данного способа в том, что не у всех (но у большинства) пользователей включен в браузере JavaaScript. Если JavaScript в браузере отключен – редиректа не произойдет.

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

Оформляется редирект в <body> либо в <head>: 

ВАЖНО!!! Данный код в любом случае сработает быстрее, чем код Яндекс.Метрики, а это значит, что Яндекс до редиректа посетителя не засчитает.

Настроить 301 редирект в WordPress

Ранее мы уже говорили, что в WordPress удобнее всего настраивать редиректы с помощью плагинов. О них и поговорим.

Плагин Redirection. Это самый популярный плагин для настройки редиректов. Он почти никогда не жаловался на «извините, у меня с новой версией движка несовместимость», а если и жаловался – то разработчики в считаные часы вносили в плагин все необходимые для совместимости изменения. Число скачиваний уже перевалило за несколько миллионов.

Число переадресаций, которые через него можно настроить, не ограничено. Плюс бонусом можно отслеживать статистику по настроенным с помощью этого плагина редиректам и даже отслеживать ошибочные перенаправления (когда после переадресации отдается код не 200 ОК, а 404 Not Found).

Единственный минус этого плагина в том, что он англоязычный. Но разобраться с настройкой редиректов крайне просто: указываем адрес, откуда будет происходить переадресация, указываем адрес, куда надо переадресовать, выбираем из списка код ответа, добавляем комментарий (при необходимости) и сохраняем. Готово!

Htaccess редирект на www

Htaccess редирект на www

Если этот плагин чем-то не устраивает, можно рассмотреть альтернативный — Safe Redirect Manager (разработчик – компания 10up). Принципиально ничем не отличается.

Htaccess редирект на www

Не грех упомянуть Simple 301 Redirects, но он необходим исключительно для настройки 301 редиректа.

Htaccess редирект на www

Настройка редиректов в Joomla

Самое ужасное – получение битых ссылок «из ниоткуда». «Да как так-то? Еще вчера все отлично работало! Почему теперь страница не найдена?». Это связано с тем, при обновлении контента, добавлении товаров/продуктов, либо по каким-то иным причинам, адреса могут меняться. И что делать? Правильно – настройка 301 редиректа будет единственным правильным решением. Как и в WordPress, в Joomla данный вопрос решается путем работы с плагинами, т.е. без вмешательства в .htaccess.

И сразу же конкретный пример, когда такое может произойти. Интернет-магазины на Joomla – это не редкость. И вот в магазин поступил новый смартфон, какой-нибудь Gopo Center C4. Менеджеры создают под него карточку товара, затем заказывается реклама и делается рассылка, а затем директор магазина говорит менеджеру «А почему в заголовке не указали, что он в черном и белом цвете? Исправить!», менеджер вносит исправления, вследствие чего адрес ссылки меняется. Итог – вся реклама и рассылка превращается в пустой слив бюджета, т.к. прошлая ссылка уже не работает. И вот тут есть 2 выхода – откорректировать адрес ссылки вручную (на сайте интернет-магазина, но это отдельная тема для разговора), либо настроить 301 редирект со старого адреса на новый.

Теперь о том, как решить эту проблему через 301 редирект.

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

Для этого в админке выбираем Расширения => Менеджер плагинов.

Htaccess редирект на www

Ищем в списке установленных плагинов «Система – Перенаправление» и включаем (если он выключен).

Htaccess редирект на www

2. Проверяем «плохие» адреса.

В верхнем меню переходим в Компоненты => Перенаправление, там будет список всех “плохих” URL вашего Joomla-сайта.

3. Настраиваем переадресацию.

Выбираем URL, с которого нужно сделать переадресацию, затем в “URL назначения» вводим новый адрес (разумеется рабочий), при необходимости добавляем комментарий, убеждаемся, что установлен статус «Включено» и сохраняем изменения.

Htaccess редирект на www

Т.е. для решения данной задачи хватает стандартного плагина Joomla, который идет с движком «с завода».

Настройка редиректа на OpenCart

Формирование адресов на OpenCart – это очень больная тема. А чтобы Вам было проще понять, насколько она на этом движке большая, просто взгляните на то, какой вид имеет адрес главной страницы:

site.com/index.php/?route=common/home

И это вместо site.com

Почему разработчики так эту проблему не решили – не понятно. Видимо, в этих «хвостах» зашифрованы послания тем, кто пытается через тайну Вселенной постичь тайну сокровищ Майя. Но т.к. среди простых землян таких нет (или есть?), то проблема перекладывается с разработчиков движка на программистов сайта.

Решить проблему можно несколькими способами:

Способ 1. В папке templates/common найти файлы header.tpl и footer.tpl и произвести в них замену кода с <?php echo $home; ?> на <?php echo $base; ?>

Способ 2. Настройка редиректа на site.com через .htaccess, вставив вот этот код:

Таким же (а именно – вторым) способом можно настроить редиректы со старых адресов категорий на новые. По умолчанию адреса ссылок в OpenCart выглядят примерно следующим образом:

site.com/index.php?path=83_94_113&route=product/category

На такие ссылки смотреть очень больно, причем в прямом смысле, т.к. глаза реально начинают болеть при виде таких адресов. В том же .htaccess можно настроить редирект на «человеческие» адреса вида site.com/category с помощью такого кода:

Но что делать с динамическими адресами, которые из-за привязки к определенной секции имеют вид site.com/katalog?c=okna-pvkh?

Программисты довольно долго искали решение. «Методом тыка» (точнее — проб и ошибок) решение было найдено. В данном случае происходит редирект на главную страницу сайта:

Примечания и ошибки

Теперь поговорим о том, как не допускать ошибок при настройке 301 редиректа:

  • Нельзя нарушать последовательность правил переадресации. После настройки редиректа необходимо убедиться, что настройка не дала каких-либо «побочных эффектов». Если нарушить последовательность правил, то ранее настроенные редиректы могут либо прекратить функционировать, либо функционировать неправильно. Противоречий в правилах быть не должно.
  • Не стесняйтесь пользоваться официальными мануалами, т.к. у 301 редиректа из-за непростого синтаксиса есть множество особенностей. Упустить какой-то нюанс при настройке – проще простого.
  • После очередных «допиливаний» ВСЕГДА проводите полную проверку работоспособности тех правил, которые были внедрены ранее. Настройка без проверки – это не настройка даже «для галочки». Один лишний символ может «обвалить» работу всего сайта, либо заставить его работать неправильно. За другими программистами нам уже не раз приходилось исправлять работу сайта, когда с адреса site.com/oldpage происходит 301 редирект на site.com/newpage, а затем с помощью того же 301 редиректа происходит переадресация обратно на site.com/oldpage и далее «по кругу».

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

Во-первых, «многоходовки», когда идет череда из нескольких 301 редиректов подряд. Гораздо правильнее настроить редирект сразу на «финишный» адрес.

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

В-третьих, редиректы «не туда». Т.е. если страница переехала с первого адреса на второй, а при настройке редиректа Вы ошибочно указываете адрес совершенно другой страницы.

В-четвертых, redirect на страницу, которая работает по каким-то причинам очень некорректно. Страница должна работать стабильно и отдавать либо код 200, либо код 404.

В-пятых, редирект файла robots.txt. Это запрещено правилами многих поисковых систем. Более того, многие допускают одну и ту же ошибку – когда настраивают htaccess редирект на https с http://site.xyz/robots.txt на https://site.xyz/robots.txt. Файл robots.txt должен быть доступен по обоим адресам без всяких переадресаций. Ровно то же самое касается и xml-карты сайта.

stokrat.org

Что такое htaccess

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

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

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

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

Кроме того, он также используется также для управления ссылками. Благодаря такому факту, все некрасивые, а также тяжело запоминающиеся, длинные ссылки — превращаются в короткие, и удобные url, которые очень легко запомнить.

А еще одним из самых важных свойств. htaccess, считается редирект на страницы ошибок. Очень часто, переходя по ссылке, которой не существует, не важно, не существует данная страница потому, что была удалена, или же потому, что ее адрес был введен неверно — пользователь попадает на страницу с ошибкой, к примеру — 404 not found (сервер не может найти данные), в случае отсутствия соединения с базой данных, пользователей будет перенаправлено на страницу с 403 ошибкой, но все же, наиболее часто встречаемые пользователями, принято считать — 307, 302 и 301 редиректы.

Htaccess и современные бесплатные CMS

Учитывая тот факт, что этот файл является одним из востребованных в системе любого сайта, сразу может возникнуть вопрос — есть ли разница в формировании htaccess под разные системы управления сайтом? Такого рода вопрос будет весьма кстати, так как на сегодняшний день, разработка сайтов на различных CMS- стала весьма популярной. Лидерами в данной области считаются такие системы управления сайтом, как wordpress, drupal и joomla.

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

301 редирект в htaccess и примеры использования

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

RewriteCond %{ REQUEST_URI} ^/ ([0-9] +) $RewriteRule.* style=»color: #ff0000;»>http://domen.com/?id=%5 [R=301, L]

А для блокировки пользователей сайта, по IPадресу, потребуется прописать лишь такой блок —

<Limit GET>Order Deny, AllowDeny from 11.111.111.11 Deny from 11.111.222 Deny from .domen.com Allow from all</Limit>

Где 11.111.111.11 и 11.111.222 — диапазон адресов для блокировки, а domen.com — является адресом сайта.

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

Redirect 301 /page1.php style=»color: #ff0000;»>http://www. domen.com/page2.php

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

  • Как сделать перенаправление со старого на новый домен

Данная функция нам в основном пригодится ели вы по каким-то причинам решили перенести свой домен и весь трафик с него на свой новый url.

RewriteEngine on

RewriteCond %{HTTP_HOST} ^www.bitiy-sait.ru$ [NC]

RewriteRule ^(.*)$ http://firelinks. ru/$1 [L,R=301]

RewriteCond %{HTTP_HOST} ^bitiy-sait.ru$ [NC]

RewriteRule ^(.*)$ http://firelinks. ru /$1[L,R=301]

 

  • Перенаправление адресов страниц с разными ЧПУ

К примеру, у Вас на сайте имеется страница, у которой вы хотите сократить ее url и тут нам поможет команда для перенаправления с одной страницы на другую. Конечно многие CMS имеют встроенные или сторонние расширения для настройки таких редиректов. На Джумле я использую ЧПУ с помощью компонента ARTIO JoomSEF, а также делаю редиректы. Также в наш файл можно просто прописать следующий код.

RewriteEngine On

RewriteRule ^ (.*)nastroyka-bloga.html$ http://firelinks.ru/seo-nastroyka-bloga.html [R =301,L]

 

  • Настройка редиректов с разными расширениями urlс окончанием .htm на расширение .html

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

RewriteEngine on

RewriteBase /

RewriteRule ^(.*). htm$ $1. html [R =301,L]

301 редирект в htaccess, и его отличие от 302 и 307

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

307, 302 и 301 редирект в htaccess, используется в случае изменения адреса к конкретному материалу на сервере. Благодаря данным редиректам, можно без каких-либо сложностей сменить домен своего сайта, даже не переживая о том, что ваши потребители или новые клиенты, планировавшие обращение к вам — не смогут найти ваш ресурс.

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

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

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

После того, как все команды, будут полностью сформированы, для завершения всего процесса перенаправления со старого на новый домен — потребуется также отметиться со своими изменениями в поисковиках. Для изменения параметров в Гугл — будет достаточно лишь выбрать основной домен в своем аккаунте Гугл. В случае же поисковика Яндекс — потребуется прописать в robots.txt — строчку кода — Host: domen.com

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

Htaccess редирект на www

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

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

Какие настройки выбрать для сайта.

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

Произвести 301 редирект в htaccess с префиксом в домене, на домен без префикса, можно, прописав в теле вот эти две строчки:

RewriteCond %{HTTP_HOST} ^www. domen .com$ [NC]
RewriteRule ^(.*)$ http:// domen.com/$1 [R=301,L]

В конечном итоге, весь блок кода, отвечающий за редирект с www на без www, будет выглядеть примерно так:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.site.ru$ [NC]
RewriteRule ^(.*)$ style=»color: #ff0000;»>http://site. ru/$1 [R=301,L]

Кроме того, с целью упрощения всего процесса работы с htaccess, да же решении вопроса за редирект с www на без www — было создано огромное количество разнообразных сервисов. Основной задачей таких сервисов, считается генерация редиректов. Наличие подобных сервисов, упрощает всю задачу с редиректами до минимума, в связи с чем, такого рода манипуляцию с первого раза без каких-либо трудностей смогут провести люди, даже впервые знакомящиеся со структурой htaccess.

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

С уважением, Галиулин Руслан.

firelinks.ru

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

AddDefaultCharset UTF-8
DirectoryIndex index.php

Options All -Indexes

Header set Cache-Control «max-age=43200»

Header set Cache-Control «max-age=604800»

Header set Cache-Control «max-age=2592000»

Header unset Cache-Control

ExpiresActive On
ExpiresDefault «access plus 5 seconds»
ExpiresByType image/x-icon «access plus 2592000 seconds»
ExpiresByType image/jpeg «access plus 2592000 seconds»
ExpiresByType image/png «access plus 2592000 seconds»
ExpiresByType image/gif «access plus 2592000 seconds»
ExpiresByType application/x-shockwave-flash «access plus 2592000 seconds»
ExpiresByType text/css «access plus 604800 seconds»
ExpiresByType text/javascript «access plus 604800 seconds»
ExpiresByType application/javascript «access plus 604800 seconds»
ExpiresByType application/x-javascript «access plus 604800 seconds»
ExpiresByType text/html «access plus 43200 seconds»
ExpiresByType application/xhtml+xml «access plus 600 seconds»

php_value post_max_size 80M
php_value upload_max_filesize 50M

ErrorDocument 404 http://mir-gardin.com.ua/404.php
RewriteEngine on

RewriteCond %{HTTP_HOST} ^mir-gardin.com.ua$ [NC]

RewriteBase /
RewriteRule ^.htaccess$ — [F]

RewriteRule ^admin/$ /admin/index.php [L]
RewriteRule ^admin/promotion$ /admin/promotion.php [L]
RewriteRule ^admin/promotion/$ /admin/promotion.php [L]
RewriteRule ^admin/services$ /admin/services.php [L]
RewriteRule ^admin/services/$ /admin/services.php [L]
RewriteRule ^admin/main$ /admin/main.php [L]
RewriteRule ^admin/main/$ /admin/main.php [L]
RewriteRule ^admin/catalog$ /admin/catalog.php [L]
RewriteRule ^admin/catalog/$ /admin/catalog.php [L]
RewriteRule ^admin/contacts$ /admin/contacts.php [L]
RewriteRule ^admin/contacts/$ /admin/contacts.php [L]
RewriteRule ^admin/news$ /admin/news.php [L]
RewriteRule ^admin/news/$ /admin/news.php [L]
RewriteRule ^admin/about_us$ /admin/about_us.php [L]
RewriteRule ^admin/about_us/$ /admin/about_us.php [L]
RewriteRule ^admin/pay$ /admin/pay.php [L]
RewriteRule ^admin/pay/$ /admin/pay.php [L]
RewriteRule ^admin/reviews$ /admin/reviews.php [L]
RewriteRule ^admin/reviews/$ /admin/reviews.php [L]
RewriteRule ^admin/our_works$ /admin/faq.php [L]
RewriteRule ^admin/our_works/$ /admin/faq.php [L]
RewriteRule ^admin/producers$ /admin/producers.php [L]
RewriteRule ^admin/producers/$ /admin/producers.php [L]
RewriteRule ^admin/fotogallery$ /admin/fotogallery.php [L]
RewriteRule ^admin/fotogallery/$ /admin/fotogallery.php [L]
RewriteRule ^admin/header$ /admin/header.php [L]
RewriteRule ^admin/header/$ /admin/header.php [L]
RewriteRule ^admin/menu$ /admin/menu.php [L]
RewriteRule ^admin/menu/$ /admin/menu.php [L]
RewriteRule ^admin/options_lr$ /admin/options_lr.php [L]
RewriteRule ^admin/options_lr/$ /admin/options_lr.php [L]
RewriteRule ^admin/modules$ /admin/modules.php [L]
RewriteRule ^admin/modules/$ /admin/modules.php [L]
RewriteRule ^admin/footer$ /admin/footer.php [L]
RewriteRule ^admin/footer/$ /admin/footer.php [L]
RewriteRule ^admin/per_page$ /admin/per_page.php [L]
RewriteRule ^admin/per_page/$ /admin/per_page.php [L]
RewriteRule ^admin/rights$ /admin/rights.php [L]
RewriteRule ^admin/rights$ /admin/rights.php [L]
RewriteRule ^admin/user_data$ /admin/user_data.php [L]
RewriteRule ^admin/user_data/$ /admin/user_data.php [L]
RewriteRule ^admin/user_files$ /admin/user_files.php [L]
RewriteRule ^admin/user_files/$ /admin/user_files.php [L]
RewriteRule ^admin/meta$ /admin/meta.php [L]
RewriteRule ^admin/meta/$ /admin/meta.php [L]
RewriteRule ^admin/fav$ /admin/fav.php [L]
RewriteRule ^admin/fav/$ /admin/fav.php [L]
RewriteRule ^admin/files$ /admin/files.php [L]
RewriteRule ^admin/files/$ /admin/files.php [L]
RewriteRule ^admin/articles$ /admin/articles.php [L]
RewriteRule ^admin/articles/$ /admin/articles.php [L]

RewriteRule ^$ /index.php [L]
#RewriteRule ^404$ /404.php [L]

RewriteRule ^registration$ /registration.php [L]
RewriteRule ^registration/$ /registration.php [L]
RewriteRule ^userpanel$ /userpanel.php [L]
RewriteRule ^userpanel/$ /userpanel.php [L]
RewriteRule ^forgot_password$ /forgot_password.php [L]
RewriteRule ^forgot_password/$ /forgot_password.php [L]

RewriteRule ^feedback$ /feedback.php [L]
RewriteRule ^feedback/$ /feedback.php [L]

RewriteRule ^about_us$ /about.php [L]
RewriteRule ^about_us/$ /about.php [L]

RewriteRule ^articles$ /articles.php?page=1 [L]
RewriteRule ^articles/$ /articles.php?page=1 [L]
RewriteRule ^articles/page$ /articles.php?page=1 [L]
RewriteRule ^articles/page/$ /articles.php?page=1 [L]
RewriteRule ^articles/page/([0-9]+)/? /articles.php?page=$1 [L]

RewriteRule ^articles/topic/(.*)/? /view_article.php?id=$1 [L]

RewriteRule ^cart$ /cart.php [L]
RewriteRule ^cart/$ /cart.php [L]

RewriteRule ^catalog$ /catalog.php?page=1 [L]
RewriteRule ^catalog/$ /catalog.php?page=1 [L]
RewriteRule ^catalog/page$ /catalog.php?page=1 [L]
RewriteRule ^catalog/page/$ /catalog.php?page=1 [L]
RewriteRule ^catalog/page/([0-9]+)/? /catalog.php?page=$1 [L]

RewriteRule ^catalog/category/(.*)/page/([0-9]+)/? /catalog_by_cats.php?cat=$1&page=$2 [L]
RewriteRule ^catalog/category/(.*)? /catalog_by_cats.php?cat=$1&page=1 [L]

RewriteRule ^catalog/subcategory/(.*)/page/([0-9]+)/? /catalog_by_subcats.php?cat=$1&page=$2 [L]
RewriteRule ^catalog/subcategory/(.*)? /catalog_by_subcats.php?cat=$1&page=1 [L]

RewriteRule ^catalog/view/(.*)/? /view_item.php?id=$1 [L]

RewriteRule ^catalog/view_all/(.*)/view/(.*)/? /view_all.php?type=$1&cat=$2 [L]
RewriteRule ^catalog/view_all/(.*)? /view_all.php?type=all&cat=0 [L]

RewriteRule ^contacts$ /contacts.php [L]
RewriteRule ^contacts/$ /contacts.php [L]

RewriteRule ^our_works$ /faq.php [L]
RewriteRule ^our_works/$ /faq.php [L]

RewriteRule ^news$ /news.php?page=1 [L]
RewriteRule ^news/$ /news.php?page=1 [L]
RewriteRule ^news/page$ /news.php?page=1 [L]
RewriteRule ^news/page/$ /news.php?page=1 [L]
RewriteRule ^news/page/([0-9]+)/? /news.php?page=$1 [L]

RewriteRule ^news/topic/(.*)/? /view_news.php?id=$1 [L]

RewriteRule ^pay$ /pay.php [L]
RewriteRule ^pay/$ /pay.php [L]

RewriteRule ^producers/(.*)/page/([0-9]+)/? /producers.php?id=$1&page=$2 [L]
RewriteRule ^producers/(.*)? /producers.php?id=$1&page=1 [L]
RewriteRule ^producers$ /producers.php [L]
RewriteRule ^producers/$ /producers.php [L]

RewriteRule ^reviews$ /reviews.php [L]
RewriteRule ^reviews/$ /reviews.php [L]

RewriteRule ^search/(.*)/? /search.php?word=$1 [L]

RewriteRule ^services$ /services.php [L]
RewriteRule ^services/$ /services.php [L]

RewriteRule ^thanks$ /thanks.php [L]
RewriteRule ^thanks/$ /thanks.php [L]

RewriteCond %{HTTP_HOST} ^www.mir-gardin.com.ua$ [NC]
RewriteRule ^(.*)$ http://mir-gardin.com.ua/$1 [R=301,L]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /index.php HTTP/
RewriteRule ^index.php$ http://mir-gardin.com.ua/ [R=301,L]

web-optimizator.com

301Есть мнение, и оно не безосновательно, что каждый сайт должен иметь 301 редирект, который был бы настроен так, чтобы один из сайтов, с или без www, был главным (например, для моего сайта, главным является joomla-school.com, и при заходе по адресу www.joomla-school.com, вас автоматически перебросит на joomla-school.com). Для чего это нужно, спросите вы? Об этом я постараюсь рассказать в этом посте, но начать, пожалуй, стоит с истории зарождении самой проблемы, связанной с использованием или не использованием приставки WWW в названии сайта.

Откуда появилась приставка WWW и что в этом плохого для начинающего вебмастера

Примерно десять лет назад World Wide Web (Всемирная паутина — то, что мы сейчас и считаем, собственно, интернетом) была лишь малой частью интернета, а сервера были очень слабенькими, поэтому приходилось размещать, например, сервер Apache на одном компьютере, почтовый сервер на другом, а сервер FTP на третьем. Имена серверов начинались с названия машин, на которых они располагались, и в зависимости от предоставляемого сервиса, выглядели так: www.domain.com, mail.domain.com, и ftp.domain.com (а так же совсем раритет — gopher.domain.com).

В настоящее же время приставка www является анахронизмом и должна была бы благополучно отмереть, однако, до сих пор существует масса каталогов, которые автоматически прибавляют к имени сайта вида domain.com пресловутое www. Так же существует немало пользователей, которые автоматически набирают в браузерах адрес сайта с www в начале (все же знают песню группы Ленинград). Поэтому www остается и создает очень интересную ситуацию. Получается, что www.domain.com и domain.com технически считаются полностью различными объектами, причем www.domain.com является родственным домену третьего уровня вида sub.domain.com. Но при этом же, обычно, www.domain.com и domain.com ведут (или должны вести) на одну и туже страницу (в отличии от субдомена sub.domain.com), т.е. получается, что каждый только псевдоним для другого (алиас или же по-английски alias).

Конечно же, можно все это пропустить и не забивать голову, но если вы всерьез заботитесь о продвижении вашего сайта в поисковых системах, то это может быть серьезной помехой у вас на пути. Смотрите сами что получается. Многие поисковики воспримут domain.com и www.domain.com как разные сайты, со всеми вытекающими отсюда последствиями. А именно — все внешние ссылки на ваш сайт будут делится на две части, в зависимости от того, в каком виде на вас проставили ссылку (с www или же без него). Получается, что вы лишаетесь части внешних ссылок на ваш сайт, а это, соответственно, приводит к понижению сайта в рейтинге поисковиков, и пользователей с них к вам будет приходить меньше, чем могло бы. Кроме этого еще нужно учитывать то что серьезные поисковики (Google, например) борются за уникальный контент и не индексируют страницы (и даже сайты целиком) двойники, что чревато для нашей ситуации. Поясню.

Допустим, что домен domain.com стал популярным и на него много ссылаются, но, как на зло, при начальной индексации сайта поисковик нашел первым домен www.domain.com и теперь получается, что domain.com стал двойником (не имеет уникального содержания) и с большой долей вероятности он выпадает из рейтинга. Печально, не правда ли? Теперь поговорим о том, как этого избежать. Кто-то очень умный придумал способ как переадресовать один псевдоним к другому, который по существу является переадресацией к самому себе. Способ это называется Редирект и существует несколько вариантов его реализации на разных серверах. Я приведу здесь два самых простых на мой взгляд способа: первый — универсальный, с использование файла .htaccess. Он подходит для всех сайтов, и другой — с использованием специального плагина для редиректа — подходит для сайтов, созданных на Joomla.

Способ с использованием файла .htaccess

Заходим в корневой каталог сайта, открываем для редактирования файл .htaccess, ищем в нем строчку:

а также

Если они закомментированы (спереди стоит значок #), то разкомментируйте их. А потом сразу после RewriteEngine On добавьте вот такие строчки:

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

Не забывайте про обратную наклонную черту перед точкой (.) в строке RewriteCond — она обязательна. Вы можете так же ознакомиться и с другими вариантами 301 редиректа на . При 301 редиректе Google должен объединять PR сайтов. Теперь, кстати, ваш сайт будет доступен и по доменному с www, так и без www, но в адресной строке вас будет перебрасывать на то имя, на которое вы настроили редирект. Этот способ называется «перенаправление с шаблоном». В результате получается следующее: если набрать в адресной строке, например, http://www.joomla-school.com/uroki.html, то пользователь будет автоматически перемещен на ту же страницу, только без www – http://joomla-school.com/uroki.html.

Важно: добавляйте строчки сразу после RewriteEngine On. У меня, например, переадресация отказывалась работать, если между ними была пустая строка.

У меня данный код выглядит вот так:

То есть,  у меня все ссылки с приставкой www перенаправляются на ссылки без www.

Если же вы хотите, чтобы перенаправление действовало в обратном направлении ( с без www в ссылки с www, то добавьте вот такой код:

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

Способ с использованием плагина www Redirect

Если у вас по каким-либо причинам не удается воспользоваться первым способом, тогда вы можете применить плагин www Redirect, который создан именно для этого. Итак, скачиваем данный плагин с сайта разработчика (также данный плагин я разместил во вложениях к данной статье). После установки в систему, заходим в его параметры и выбираем направление редиректа:

wwwredirect

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

Директива Host, позволяющая задать главное зеркало сайта для Яндекса

Для Яндекса дополнительно надо определить какое зеркало сайта является главным, с помощью директивы ‘Host‘ в файле robots.txt. Он так же, как и файл .htaccess находится в коневом каталоге вашего сайта. Код добавляемый в robots.txt должен выглядеть следующим образом:

Лучше будет вынести директиву ‘Host’ в отдельную секцию, предназначенную только для робота Яндекса (User-agent: Yandex), т.к. возможно, что другие поисковики (Google, например) могут некорректно отработать непонятную им директиву. Так же по стандартам файла robots.txt в каждой секции ‘User-agent’ должна присутствовать хотя бы одна директива ‘Disallow’, поэтому мы и поставили в коде пустую, ничего не запрещающую директиву Disallow:. Мой файл robots.txt, после добавления приведенного выше кода, стал выглядеть так:

В статье использованы материалы сайта ktonanovenkogo.ru

joomla-school.com

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

Редирект 301 (Permanent Redirect) – это перенаправление, которое направляет посетителя с одного адреса на другой, при этом первый адрес отдает код ответа сервера 301. То есть если со страницы znet.ru/zelenyj-slonik стоит 301 редирект на страницу znet.ru/green-elefant, то пользователь, зашедший на первую страницу, даже не увидит ничего с ней, а попадет сразу на вторую страницу, и в адресной строке у него будет адрес именно второй страницы. А старая страница будет отдавать код ответа сервера 301.

Также бывают и другие редиректы, например 302 и 303 редирект. Вот чем они отличаются:

  1. Permanent Redirect (301) означает, что страница перенесена навсегда, на постоянной основе;
  2. Temporary Redirect (302, 303 и некоторые другие) означает, что страница перенесена временно.

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

Что передается по редиректу?

Что такое редирект, выяснили, теперь давайте о том, что передается по нему. В большинстве случаев это следующие данные:

  • Ссылочный вес;
  • ТИЦ сайта (если в роботсе прописана директива host);
  • Возраст страницы, если обе страницы на одном домене.

Когда я двигал один крупный портал, мы его переносили на новый домен, и позиции в Google очень сильно просели, потому что ссылки были на старый домен. Яндекс сразу понял, что поскольку стоит 301 редирект, то ссылочная масса перешла к новому домену (либо он просто-напросто уже тогда не учитывал ссылки). А вот Гуголь ругался и не хотел ранжировать сайт высоко. Тогда мы у всех ссылок поменяли домен, и уже через пару недель был взрывной рост позиций в Гугле. Так что при передаче веса ссылок могут быть нюансы.

В то же время даже правильно настроенный через htaccess редирект не может передавать:

  • Санкции, которые были наложены на домен сайта (в очень редких случаях санкции, правда, все же передавались, особенно злой фильтр Яндекса за накрутку ПФ);
  • Возраст домена.

Если бы 301 передавал санкции, все бы уже давно проставили со своих дорвеев редирект на конкурентов.

Предостережение

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

Обязательное условие на апаче – наличие подключенных модулей mod_alias и/или mod_rewrite в файле php.ini. Эти модули изначально включены в большинстве хостингов, но вы бы все равно лучше уточнили этот момент.

Чем проверить код ответа сервера

Если полезли проставлять редирект — проверьте потом, все ли правильно сделано.

Лучше всего проверять в Яндекс Вебмастере. Вот ссылка на инструмент Проверка ответа сервера. Если вы зареганы в ЯВМ (да я вас подкалываю, конечно вы там зареганы… правда же?), то вы можете им воспользоваться.

Если же для вас этот вариант не катит — пользуйтесь Берталом. Это классика!

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

Код Permanent Redirect используется чаще всего в таких случаях:

  1. Смена домена.
  2. Склеивание доменов без www с доменами www.
  3. Перенос конкретных страницы сайта на новый URL.

Кстати, если вы просто удаляете страницу, то вы можете потерять входящие ссылки на неё. Я советую в случае удаления страницы проставлять с неё редирект на главную страницу.

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

Так, теперь собственно как сделать редирект в htaccess. Ну нужно открыть этот файл сначала, а потом уже думать, как сделать редирект. Подключаемся через FTP (Filezilla например) к нашему сайту, открываем файл через прогу Notepad++, вставляем нужный код, сохраняем. Если что-то не так — откатываем. Но, опять же, лучше всего вам это сделает программист.

Коды для вставки

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

С одной страницы на другую

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

Новый адрес нужно обязательно указывать с http и доменным именем. Где was.php — там адрес старой страницы, соответственно вместо www.site.ru/new.php также прописывайте свой вариант.

С www на без www

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

Как провести редирект с www на без www:

С без www на www

Если планируется редирект с без www на www, используется другой код:

С одного домена на другой

Вот как делается редирект на другой сайт:

Редирект с одного домена на другой полезен, например, при переезде сайта на новый домен.

С https на http

Как сделать редирект на http:

С http на https

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

Со страниц со слешем / на конце на страницы без слеша

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

Со страниц без слеша на конце на страницы со слешем

Переадресация 301 на страницы со слешем на конце:

Убираем index.php

Если у нас страница site.ru/index.php отдает код 200 ОК, то нужно её убрать нахрен. И проставить 301 редирект с index.php на корень:

Как писать название .рф домена в htaccess

Самое важное правило здесь – отказ от кириллицы. Поэтому нужно использовать имя домена в punycode (например, взяв его из Whois).

Боремся с рефспамом с помощью редиректов

Если вас задалбывает реферальный спам, то есть особый код, который с помощью заголовка HTTP_REFERER настраивает 403 код ответа сервера для трафика с сайтов-спамеров.

Как легко делать редиректы в WordPress: используем плагин Redirection

Для WordPress я советую плагин Redirection. Что это такое? Это то, чем пользоваться проще пареной репы. Видоса на русском нет, но и в английской версии понятно, как сделать редирект с помощью этой фичи:

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

В завершение

Если вы не программист, а сеошник или вебмастер, то если вы услышите такие страшные слова, как серверный редирект, query string, php header, location — доверьтесь спецу, прошу вас. Не шутите с редиректами.

znet.ru


You May Also Like

About the Author: admind

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.