Есть мнение, и оно не безосновательно, что каждый сайт должен иметь 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 редиректа на
Важно: добавляйте строчки сразу после RewriteEngine On. У меня, например, переадресация отказывалась работать, если между ними была пустая строка.
У меня данный код выглядит вот так:
То есть, у меня все ссылки с приставкой www перенаправляются на ссылки без www.
Если же вы хотите, чтобы перенаправление действовало в обратном направлении ( с без www в ссылки с www, то добавьте вот такой код:
где site.ru - имя вашего домена
Способ с использованием плагина www Redirect
Если у вас по каким-либо причинам не удается воспользоваться первым способом, тогда вы можете применить плагин www Redirect, который создан именно для этого. Итак, скачиваем данный плагин с сайта разработчика (также данный плагин я разместил во вложениях к данной статье). После установки в систему, заходим в его параметры и выбираем направление редиректа:
После выбора направления, не забываем опубликовать данный плагин. Вот и все. Теперь перенаправление должно работать на вашем сайте!
Директива Host, позволяющая задать главное зеркало сайта для Яндекса
Для Яндекса дополнительно надо определить какое зеркало сайта является главным, с помощью директивы 'Host' в файле robots.txt. Он так же, как и файл .htaccess находится в коневом каталоге вашего сайта. Код добавляемый в robots.txt должен выглядеть следующим образом:
Лучше будет вынести директиву 'Host' в отдельную секцию, предназначенную только для робота Яндекса (User-agent: Yandex), т.к. возможно, что другие поисковики (Google, например) могут некорректно отработать непонятную им директиву. Так же по стандартам файла robots.txt в каждой секции 'User-agent' должна присутствовать хотя бы одна директива 'Disallow', поэтому мы и поставили в коде пустую, ничего не запрещающую директиву Disallow:. Мой файл robots.txt, после добавления приведенного выше кода, стал выглядеть так:
В статье использованы материалы сайта ktonanovenkogo.ru