Редирект 301: с WWW, без WWW - нас везде неплохо кормят!

Таити, Таити…
Нас и тут неплохо кормят! © мультик

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

WWW - давно и практически всем известная абревиатура World Wide Web. Исторически так сложилось, что все доменные имена начинались с www как признак, какой конкретно сервис запрашивается. Конечно, информация о запрошенном сервисе четко видна и в строке запроса (http://www.domain.com - и веб-сервер отдает нам сайт; ftp://domain.com - и делается попытка FTP-соединения). Далее, поскольку у рядовых пользователей Сети имя в Интернете ассоциируется, как правило, именно с сайтом (то есть http), то зачастую domain.com и www.domain.com воспринимаются пользователями совершенно одинаково.

Но не все так просто с точки зрения веб-сервера. Конечно, зачастую у многих хостеров при регистрации доменного имени автоматически выполняется привязка и его www-алиаса - но это исключительно ради упрощения настроек хостинга для не всегда технически подкованных пользователей. На самом деле для веб-сервера Apache domain.com и www.domain.com - понятия различные. И более того, subdomain.domain.com и www.domain.com гораздо ближе друг к другу - поскольку принцип их обработки сервером идентичен.

Для чего склеивать домены?

Конечно, можно все это пропустить и спокойно использовать оба имени. Но если всерьез озаботиться поисковой оптимизацией сайта (seo, search engine optimization) - это становится серьезной проблемой. Дело в том, что при ранжировании вашего сайта многие поисковики воспримут domain.com и www.domain.com как разные сайты. Соответственно, внешнее ссылочное ранжирование будет делиться на 2 неравные части - в зависимости, кто в каком виде проставил ссылку на ваш сайт. А далее следующий неприятный момент: многие серьезные поисковики (и в первую очередь Google) ведут борьбу за уникальный контент. Борьба эта выражается тем, что сайты (в лучшем случае страницы)-двойники не индексируются.

Итак, представим себе ситуацию: Ваш сайт www.domain.com становится популярным и известным. Много ресурсов цитирует его, ставит ссылки, и все вроде бы хорошо; но при начальной индексации сайта первым был найден domain.com - и теперь www.domain.com считается двойником, сайтом без уникального контента и выпадает из рейтинга. Все ваши усилия и наработки в плане ссылочного ранжирования практически сведены к нулю.

Редирект 301 - клеим на века!

Есть несколько технических способов решения этой проблемы. Самый распространенный - через настройки .htaccess и использование директивы mod_rewrite (Apache web-server).

RewriteEngine on
Options +FollowSymlinks
RewriteBase /
RewriteCond %{HTTP_HOST} ^domain\.com$
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]

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

К слову, такой редирект и склейка доменов может помочь не только в случае “борьбы” со спайдерами поисковиков. Есть и другие ситуации, когда наличие двух доменов недопустимо: передача сессий в PHP, SSL-сертификат и т.п. ситуации.

Другие варианты реализации редиректа 301

Сразу оговорюсь, что экзотику типа редиректа на asp я рассматривать не буду. Я не особо силен в ASP, а предлагаемый хостинг на Apache ориентирован на php. Так что простите…

простой редирект для Apache

В файле .htaccess или httpd.conf можно прописать инструкцию редиректа для Apache со следующим синтаксисом:
- Для переадресации страницы:
Redirect 301 /папка/старый_урл.htm http://site.com/новый_урл.htm

- Для переадресации сайта:
RedirectPermanent / http://www. site.com/

Редирект на PHP

Язык программирования php также можно использовать для настройки редиректа. Для этого в начале php-скрипта записываем следующий код:

<?php

$ref=$_SERVER['QUERY_STRING'];

if ($ref!=”) $ref=’?’.$ref;

header(’HTTP/1.1 301 Moved Permanently’);

header(’Location: http://новый-урл/’.$ref);

exit();

?>

Мета-тэги для редиректа

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

Подробнее почитать про мета-тэги можно в специальной статье нашей библиотеки.

Вот синтаксис редиректа с помощью meta refresh

< meta http-equiv="refresh" content="0; url=http://новый-урл" >

здесь 0 (в content) - задержка переадресации в секундах, новый-урл -адрес переадресации.
Еще надо учесть, что некоторые старые браузеры не поддерживают meta refresh со значением 0.
Ну и разумеется, такая переадресация не является, как я уже писал, 301-м редиректом, не склеивает домены, не передает PR - она просто перенаправляет посетителя. Учтите это и пользуйтесь с осторожностью :)

© Виталий Трахтенберг,
TVYSoftware.com

Комментариев: 2

  1. Сергей М. пишет:

    И не забываем о некоторых проблемах Яндекса, прописывая Host в robots.txt ))

    Reply

    Трахтенберг Reply:

    Сергей, сказавши “А” да скажет “Б”…. :)

    Давай уж тогда популярно, про проблемы нашего любимого в Рунете Яндекса :)

    Reply

Оставьте свой отзыв!

Я не робот.

Другие статьи рубрики "Веб-сервер"