Редирект 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 - она просто перенаправляет посетителя. Учтите это и пользуйтесь с осторожностью
15 Май 2009 в 9:49 дп
И не забываем о некоторых проблемах Яндекса, прописывая Host в robots.txt ))
Reply
Трахтенберг Reply:
Май 15th, 2009 at 10:13 дп
Сергей, сказавши “А” да скажет “Б”….
Давай уж тогда популярно, про проблемы нашего любимого в Рунете Яндекса
Reply