+7 495 008 8452 пн.-пт. 10:00 – 17:00
Если у вас возникли какие либо вопросы которые вы не смогли решить по нашим публикациям самостоятельно,
то ждем ваше обращение в нашей службе тех поддержки.


Вам не приходилось сталкиваться с такой ситуацией? Через три – четыре месяца после сдачи сайта заказчик просит «навести порядок с SEO». И присылает длинный список пожеланий сеошников, где во первых строках письма стоит задание «редирект с www на без www». Пройдя стадию отрицания и гнева, благоразумный разработчик вычленяет повторяющиеся требования и включает их в чек-лист разработки сайта. Упростим ему задачу и приведем два типовых требования специалистов по поисковой оптимизации, а также инструкцию по их внедрению.

1. Переадресация с «без www» на «с www»

Первое требование определяет, что запросы адресов с не - основными хостами (lдопустим, http://вашсайт.ru/ без приставки www) обязаны получать от сервера ответ НТТР/1.1 301 Моvеd Pеrmаnеntly. При этом из поля Location должен отдаваться адрес, включающий основной хост сайта (http://www.вашсайт.ru/).

Чтобы выполнить это требование, надо найти в корневом каталоге сайта файл конфигураций Apache .htaccess и добавить в него следующее условие:

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


2. Редирект с «index.php» на папку

Второе требование определяет, что переходы на страницы вида http://www.вашсайт.ru/ index.php должны переадресовываться на дублирующие их страницы вида http://www.вашсайт.ru/ и при этом сервер должен отдавать ответ НТТР/1.1 301 Моvеd Pеrmаnеntly.

Источники советуют много разного. Методом проб и ошибок мы устаовили, что лучше всего с этой задачей справляется такое условие в .htaccess:

RewriteCond %{REQUEST_URI} ^(.*)/$
RewriteRule .* - [L]

RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule .* - [L]

RewriteCond %{REQUEST_METHOD} =GET
RewriteCond %{REQUEST_URI} ^(.*)/index.php$
RewriteRule ^(.*)$ %1/ [R=301,L]


3. «Два в одном»

Итак, запишите в свой чек-лист разработки сайта пункт:

Добавить в .htaccess в корне сайта условие

<IfModule mod_rewrite.c>
RewriteEngine On

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

RewriteCond %{REQUEST_URI} ^(.*)/$
RewriteRule .* - [L]

RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule .* - [L]

RewriteCond %{REQUEST_METHOD} =GET
RewriteCond %{REQUEST_URI} ^(.*)/index.php$
RewriteRule ^(.*)$ %1/ [R=301,L]
</IfModule>


И будет вам счастье. Удачи!

 

-------------------------------
Спасибо за внимание!
Читайте свежий выпуск «Кладовки программиста» каждый день!

Назад в раздел

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












CAPTCHA