О web-разработке
и даже немного больше...

Как сделать 301-редирект в htaccess с «www.» на без «www.»?

Множество сайтов в сети интернет доступны с адресами доменов с «www» и без него, при этом сайт позиционируется как один — с единым содержимым. Если человек вводит в адресной строке домен вашего сайта с «www» либо без него, то скорее всего, он подразумевает именно тот сайт, который находиться за ключевым доменом, второго, а иногда и третьего уровня. Ему важно получить содержимое сайта, и менее важно как он его набирает с «www» либо без. Однако с поисковыми системами дела обстоят немного иначе. Поисковые системы домен с «www» и без него воспринимают как два разных ресурса, это в свою очередь косвенно влияет на ранжирование и индексацию сайта. В этом случае разработчику предстоит донести до поисковых систем, что сайт с «www» и без него – это единое целое. К счастью, это делается несложно, достаточно сделать перенаправление с http-заголовком 301 («перенесен навсегда») на целевой адрес.
 
Сделать редирект можно несколькими способами, в этом примере мы будем это делать с помощью файла .htaccess, который будет размещаться в корне сайта. Так же следует убедиться, что на в Apache включен модуль mod_rewrite, если вы пользуетесь CMS, то скорее всего он у вас включен, так как зачастую для их работы это так же является важным условием.
 
Рассмотрим несколько способов 301-редиректа c «www» на без «www».
Способ первый:

<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.href\.kz$ [NC]
RewriteRule ^(.*)$ https://href.kz/$1 [R=301,L]
</IfModule>

Способ второй:

<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
</IfModule>

Способ третий:

<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} !^href\.kz$ [NC]
RewriteRule ^(.*)$ https://href.kz/$1 [R=301,L]
</IfModule>

 
Теперь у вас есть три способа 301-редиректа с «www», разница лишь в условии проверки, теперь посмотрим, как можно сделать перенаправление с адреса без «www» на адрес с «www», в этом случае так же известны пара способов.
 
Редирект на домен с «www».
Способ первый:

<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^href.kz$ [NC]
RewriteRule ^(.*)$ http://www.href.kz/$1 [R=301,L]
</IfModule>

Способ второй:

<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.(.*) [NC]
RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]
</IfModule>

Способов реализации перенаправления на самом деле может быть большое количество, удобнее выбрать один, который вам подходит. Так же есть возможность сделать 301-редирект для отдельных страниц и разделов. В завершении следует добавить, после того как вы организовали перенаправление на сайте, рекомендуется проверить на наличие ошибок индексации в панели управления Google Веб-мастер и Яндекс Веб-мастер. В файле robots.txt вашего сайта (если таковой есть вообще) следует так же перепроверить директиву Host, при необходимости внести поправку.

Опубликован: 22.03.2014 г.

См. также:

Преимущества и недостатки веб-серверов Nginx и Apache
Как включить сжатие GZip в Nginx?
Подробнее о логах в Apache
Ротация логов в Linux
Denwer в локальной сети
HTTP авторизация
Просмотр списка загруженных модулей Apache
httpd грузит процессор, что делать?

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

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

Комментарии
  • Загрузка...
Друзья сайта