Важно! Создание прибыльных веб сайтов и поисковое продвижение сайтов в Москве: веб-компания StudioForYou!
301 редирект домена без WWW на домен с WWW или Как сохранить ссылочную популярность сайта с помощью 301 редиректа
Автор: StepForth
Перевод: Всеволод Козлов
Проблема
Поисковые системы считают сайты http://yoursite.ru/ и http://www.yoursite.ru/ абсолютно разными. Отсюда следует, что если часть сайтов будет ссылаться на http://yoursite.ru/, а другая часть на http://www.yoursite.ru/, то ссылочная популярность Вашего сайта делится между разными доменами, что не есть хорошо. С этим надо что-то делать.
Решение проблемы
Используя 301 редирект, который автоматически будет переадресовывать всех, кто заходит по ссылке, начинающейся с http://yoursite.ru/ на http://www.yoursite.ru/, Вы сможете дать поисковым системам понять, что эти 2 домена являются как бы одним.Таким образом, ссылочная популярность больше не будет распределяться между двумя доменами, а будет считаться общей, что позволит улучшить позиции сайта в поисковых системах.
Как активировать 301 редирект
Чтобы 301 редирект заработал, Вам необходимо подготовить сервер. Современные серверы работают либо с ПО Microsoft, либо Apache (Linux, Unix). Чтобы приступить к настройке 301 редиректа, Вам необходимо узнать, какой у Вас сервер (Microsoft или Apache). После того, как Вы это разузнали, приступайте читать дальше, выбрав нужный раздел данного руководства.
Краткое оглавление руководства:
- Установка 301 редиректа домена без WWW на домен с WWW на Apache сервере
- Установка 301 редиректа домена без WWW на домен с WWW на Microsoft IIS сервере
Так же мы рекомендуем руководство: 301 редирект: Переадресовываем всех со старого домена на новый, полностью сохраняя ссылочную структуру сайта.
Установка 301 редиректа домена без WWW на домен с WWW на Apache сервере
1. Прежде всего, убедитесь в том, что на Вашем Apache сервере активен модуль ModRewrite. В основном он активен по умолчанию, но убедиться лишний раз не помешает во избежание проблем в дальнейшем. Если же данный модуль неактивен, то просто свяжитесь со службой поддержки своего хостинг-провайдера и объясните им ситуацию. Проблем при активации данного модуля быть не должно.
Если же у Вас есть доступ к файлу httpd.conf, то Вы сможете активировать данный модуль собственноручно. Для этого откройте данный файл для редактирования (не забудьте сперва сделать его резервную копию) и раскомментируйте следующую строку:
LoadModule rewrite_module modules/mod_rewrite.so
После того, как раскомментируете данную строку, сохраните файл и перезагрузите сервер, чтобы продолжить работать дальше.
2. Скачайте на свой компьютер с сервера файл .htaccess
3. Сделайте резервную копию данного файла и сохраните ее, по возможности, в другом месте на компьютере.
4. Откройте оригинальный файл .htaccess для редактирования, например, в блокноте.
5. Теперь добавьте в него следующие строки, но будьте внимательны и не забудьте заменить example.ru на адрес своего сайта
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example.ru
RewriteRule (.*) http://www.example.ru/$1 [R=301,L]
И наоборот, кому надо редирект домена с WWW на домен без WWW:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.example.ru$ [NC]
RewriteRule ^(.*)$ http://example.ru/$1 [R=301,L]
6. Сохраните изменения в файле и загрузите его на сервер.
7. После этого откройте браузер и в адресной строке введите адрес своего сайта без WWW, например http://example.ru/ и зайдите на сайт. Если Вы все сделали правильно, то в адресной строке браузера автоматически произойдет изменение - адрес сайта с введенного Вами сменится на http://www.example.ru/.
8. Но чтобы на 100% быть уверенным в успешности проделанного я Вам советую зайти сюда, ввести адрес сайта без WWW. Данный инструмент покажет Вам, работает ли настроенный Вами 301 редирект или нет. Если Вы все сделали правильно, то должны будете увидеть следующее (особое внимание уделите выделенным жирным участкам кода):
#1 Server Response: http://example.ru
HTTP Status Code: HTTP/1.1 301 Moved Permanently
Date: Wed, 14 Mar 2007 22:49:28 GMT
Server: Apache/1.3.27 (Unix) PHP/4.4.1 FrontPage/5.0.2.2510 mod_ssl/2.8.14 OpenSSL/0.9.6b
Location: http://www.example.ru/
Connection: close
Content-Type: text/html; charset=iso-8859-1
Redirect Target: http://www.example.ru/
#2 Server Response: http://www.example.ru/
HTTP Status Code: HTTP/1.1 200 OK
Date: Wed, 14 Mar 2007 22:49:28 GMT
Server: Apache/1.3.27 (Unix) PHP/4.4.1 FrontPage/5.0.2.2510 mod_ssl/2.8.14 OpenSSL/0.9.6b
Connection: close
Content-Type: text/html
9. Если у Вас в ключевых (выделенных жирным) местах все сошлось, то все работает!
Если же Вы проделали указанные выше шаги и не добились требуемого результата, то воспользуйтесь резервной копией файла .htaccess – проделайте с ней еще раз все указанные выше шаги, но будьте предельно внимательны. Выверяйте каждый шаг.
Если же и сейчас ничего не получилось, то свяжитесь со службой поддержки своего хостинг-провайдера, объясните им ситуацию и пусть они примут соответствующие меры, нацеленные на решение Вашей проблемы.
Установка 301 редиректа домена без WWW на домен с WWW на Microsoft IIS сервере
Microsoft сервера не имеют файла .htaccess, поэтому Вам будет проще связаться со службой поддержки своего хостинг-провайдера и попросить их решить Вашу проблему. Если же служба поддержки некомпетентна в данном вопросе, то ниже приводится пошаговая инструкция, которую Вы можете им предоставить:
1. Используя Internet Services Manager, создайте новый веб-сайт с уникальным IP, используя http://example.ru или, как альтернатива, можно избежать использования уникального IP, используя виртуальный веб-сайт www.example.ru
2. Теперь проверьте заголовки, отдаваемые сервером для каждого из сайтов, используя данный инструмент. Сервер должен отдавать 200 OK для обоих сайтов.
3. Добавьте следующий код на главную страницу сайта http://example.ru:
< %@ Language=VBScript %>
< %
Response.Status="301 Moved Permanently"
Response.AddHeader "Location", http://www.example.ru
%>
ВНИМАТЕЛЬНО! Вносить какие-либо изменения в код нельзя, скопируйте и вставьте его в таком виде, как есть.
4. Чтобы убедиться в работоспособности 301 редиректа, зайдите на сайт http://example.ru. Затем воспользуйтесь данным инструментом для сайта http://example.ru и убедитесь, что в результате проверки есть следующие данные: «HTTP Status Code: HTTP/1.1 301 Moved Permanently». Если Вы такое видите, то у Вас все получилось!
Источник: How to 301 Redirect Non-WWW to WWW URLs
Популярность публикации: 32%


[…] 301 редирект домена без WWW на домен с WWW или Как сохранить… […]
сайт на Апаче.
И в .htaccess уже есть записи…
Короче не сработало - вообще доступ отрубился.
Может есть ссыла на СИНТАКСИС .htaccess ???
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php
RewriteCond %{HTTP_HOST} ^******.com$
RewriteRule ^(.*)$ http://www.******.com/$1 [R=301,L]
вот это заработало, но стали не доступны рубрики (категории)… сайт на ВордПрессе
не знаете в чем дело ???
[…] Проблемы с URL . Это означает, что с вашей статьей можно ознакомиться, обратившись к ней по нескольким URL. Например, со слешем или без него. Запомните, что mysite.ru и mysite.ru/, также как и mysite.ru и http://www.mysite.ru – воспринимаются поисковиками по-разному. Этим вы ухудшаете поисковое ранжирование. Сделайте все, чтобы у вашего блога был один конкретный адрес: mysite.ru или http://www.mysite.ru. Чаще всего это делается с помощью 301 редиректа. […]
[…] Проблемы с URL . Это означает, что с вашей статьей можно ознакомится, обратившись к ней по нескольким URL. Например, со слешем или без него. Запомните, что mysite.ru и mysite.ru/, также как и mysite.ru и http://www.mysite.ru – воспринимаются поисковиками по-разному. Это ухудшает поисковое ранжирование. Сделайте все, чтобы у вашего блога был один конкретный адрес: mysite.ru или http://www.mysite.ru. Чаще всего это делается с помощью 301 редиректа. […]
а что если в .htaccess уже есть вот такие строки:
RewriteEngine On
RewriteBase /
RewriteRule ^index/(.*)$ /index.php/$1
То куда втыкать это:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^ example.ru
RewriteRule (.*) http://www.example.ru /$1 [R=301,L]
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, webmaster@esportby.com and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log.
Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.
Apache/1.3.37 Server at http://www.esportby.com Port 80
Вот что получилось после того как добавил:
RewriteEngine On
RewriteBase /
RewriteRule ^index/(.*)$ /index.php/$1
RewriteCond %{HTTP_HOST} ^ esportby.com
RewriteRule (.*) http://www.esportby.com /$1 [R=301,L]
Ошибка появляется если не правильно раставлены пробелы и также точки в думейне
Вот рабочая версия .htaccess
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^yourdomain\.com
RewriteRule ^(.*)$ http://www.yourdomain.com/1 [R=permanent,L]
Я только одного не поняла: 301 касается любого сайта, или это только применительно к блогам?
Anna, это касается абсолютно любого сайта!
У меня ситуация такого рода: google нашел в ссылках на мой сайт какие-то дурацкие URL и возмущается по поводу неличия несуществующих страниц….
можно ли в этом случае использовать 301 редирект?
с “левого” URL на реально существующую страницу?
Christian Magazine, лучше сделайте свою собственную страницу ошибки 404, эту тему я уже поднимал неоднократно тут:
1) Ошибка 404. Как удержать посетителя на сайте?
2) 24 креативные, эффектные, дружественные, функциональные и юзабельные страницы ошибки 404
3) 40 креативных и визуально неотразимых собственных страниц ошибки 404
Благодарю!
Очень полезная статья.
А вот вопрос “сколько нужно времени чтобы ПР перешел на новый домен” а то у меня с http://www. ПР-1 ТИц-20 (не смеятся, это мой первый сайт и работает, меньше, чем 3 месяца) а без http://www. всё по нулям.
И еще один “У меня на сайте есть форум доступен он /forum/index.php я вот решил сделать поддомен forum. вот собственно вопрос как редирект сделать при запросе первого на второй” Прошу простить за ошибки в тексте писал сонным =)
Зарание благодарен!
отличная статья. прошёл проверять
главно не в коем случае (если у Вас форум) не ставьте модуль vBSEO , а то без всяких редиректов в панели вэбмастера в яндексе и в гугле полезут сообщения о бесконечном редиректе 301. Вроде как считается что вэб мастер в самом начале пути должен выбрать - либо с ввв, либо без.
Все работает без проблем, с первого раза сделал.
Только вот насколько знаю яндекс автоматически распознает зеркала, и объединяет оба сайта…
> не ставьте модуль vBSEO
Может быть, но у меня ещё с самого начала стоит этот мод и пока в панеле нет ошибок. Может уже исправили кто его знает
> яндекс автоматически распознает зеркала
Ну так существует ещё ряд других поисковиков которые не распознают сами
интересное и полезное чтение
А почему акцент на http://www. домене? Мне чисто визуально больше нравиться домен без http://www. Или у домена начинающегося на www есть какие-то преимущества?
Borigen, никаких преимуществ. Просто, например, на визитках и вообще в подписях к почте и т.д. солиднее смотрится, чем без.
Понятно, спасибо.
Хотя я сейчас подумал, чисто теоретически, с www, все-таки, есть преимущество, при поиске. Если набирают без www, а у тебя с www, то релевантность полная, а вот если у тебя без www, а набирают с www, то вроде как у тебя чего-то нехватает..
Понимаю, что чушь написал, но в любой чуши бывает зародыш истины..:)
спасибо за статью, как раз нигде не мог почему PR с www и без него так резко отличается
sagnol, на здоровье!
[…] 12. Не допускайте такого, чтобы главная страница Вашего сайта была доступна по обоим адресам с www и без http://www. Для поисковых систем домен с www и без www – 2 разных вещи. Чтобы избежать всяческих недоразумений и негативных последствий, используйте 301 редирект. […]
[…] Если не усвоили 301 редирект) […]
Спасибо, работает!
А это правило действует только для тИЦ или на Pr тоже работает?
Андрей, это универсальное средство! работает для всего!
Меня интересует тема редиректа. Насколько я понимаю, чтобы делать редирект на другой домен, надо чтобы старый домен также работал, именно там в .htaccecc-е прописывается редирект 301 на новый - где бы он ни был? То есть если уничтожить старый домен - перехать со старого сервера, никакого редиректа не сделать? Правильно я понял, сорри за технодаунство….
Считаю что это один из самых полезнейших материалов на этом блоге! Очень помогает мне в повседневной работе!
Респект!!!
[…] Настройте 301 редирект с http:// на http://www, что бы показатели, такие как PR домена не делились. Способов это сделать много, но для меня удобнее всего оказался этот. […]
Добрый день! Помогите пож-та, не могу сделать полный постраничный 301-й редирект с неосновных зеркал на основное зеркало. Где я только не читала, но в основном идут примеры для PHP редиректа. у нас сайт написан на HTML. какой код и куда его прописать чтобы работал 301 редирект?! Будьте так добры, подскажите, чтобы работал HTTP/1.1 301 Moved Permanently.
Елена, не совсем понял сути Вашей проблемы. Напишите на конкретном примере…
Всеволод, большое спасибо, что отозвались на мою проблему. Постараюсь объяснить подробнее: при запросе любых URLs, содержащих неосновные хосты (например, http://kobor.ru/ или http://kobor.ru/katalog.html без префикса WWW) необходимо, чтобы сервер отдавал ответ HTTP/1.1 301 Moved Permanently.
Елена, так создайте файл .htaccess, а в него вставьте следующий код:
RewriteEngine OnRewriteCond %{HTTP_HOST} ^kobor.ru$ [NC]
RewriteRule ^(.*)$ http://www.kobor.ru/1 [R=301,L]
наш сайт находится на web-сервере IIS. а написан на html.
Я поставил на основное зеркало моего сайта вот такой редирект в файле .htaccess: Redirect 301 / http://www.a-n-g-e-l.com/ Правильно ли это?
Отлично работет, Спасибо. Сайт на двиге DLE
А как быть если надо редиректить подобное http://www.site.com/index.php? в http://www.site.com
RewriteCond %{HTTP_HOST} ^ example.ru
точки надо экранировать бэкслешем
RewriteCond %{HTTP_HOST} ^ example\.ru
А для яндекса есть директива Host в robots.tst
Host:www.sait.ru
У моего хостера по-умолчанию получается домен http://yoursite.ru/, а http://www.yoursite.ru/ вообще не запускается, конечно можно сделать редирект, но хочется чтобы по-умолчанию был http://www.yoursite.ru/, кого напрягать в этом случае и можно ли настроить самому? Извиняюсь, если не по теме, но идею я преследую ту же, что и в статье.
Не понимаю, при записи:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example.ru
RewriteRule (.*) http://www.example.ru/1 [R=301,L]
происходит какое-то зацикливание и сайт не работает вообще, на собственной cms все заработало на ура.
Теперь самое интересное, вся это процедура не работает именно под wordpress 2.7, кто-нибудь подскажет как изменить настройки wordpress?
зачем же я буду платить, если у нас и своя работает быстро http://www.coolweb.su/, но просто сейчас есть люди которым надо сделать на wordpress, да и уже дело принципа решить эту проблему, как-то же она решается, неужели у всех DLE? Видимо все клонируют инфу друг с друга, уж очень много тем про этот 301 редирект и у всех синтаксис разный, я уже на куче блогов написал, а там игнор, видимо сами не рубят о чем пишут тупой копипаст.
Сергей спасибо за совет, хоть и не помог)
После смены движка на WordPress 2.7 сайт не индексируется.
В Яндекс.Вебмастер в индексе только: http://****.ru/ без заголовка и описания.
В ошибках растет число ошибок при индексации страниц:
HTTP-статус: Ресурс перемещён навсегда (301)) - 11
/ 28.01.2009 17.02.2009
/articles/a4 17.02.2009 17.02.2009
/articles/a5 17.02.2009 17.02.2009
/articles/a6 17.02.2009 17.02.2009
/articles/a7 17.02.2009 17.02.2009
/pic/g8 17.02.2009 17.02.2009
/pic/g9 17.02.2009 17.02.2009
/service/corporation 17.02.2009 17.02.2009
/service/love 17.02.2009 17.02.2009
/service/reportage 17.02.2009 17.02.2009
/service/wedding 17.02.2009 17.02.2009
В инете нашел материал по похожим проблемам, на данный момент стоит редирект 301 в .htaccess
DirectoryIndex index.php index.html
RewriteEngine On
Options +FollowSymlinks
RewriteBase /
RewriteCond %{HTTP_HOST} ^www.****.ru$ [NC]
RewriteRule ^(.*)$ http://****.ru/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
в robots.txt :
User-agent: *
Disallow: /wp-includes
Disallow: /wp-admin
Disallow: /wp-content/plugins
Disallow: /wp-content/cache
Disallow: /wp-content/themes
Disallow: /wp-login.php
Host: ****.ru
так же wp-includes/canonical.php закоменчены строчки:
// wp_redirect($redirect_url, 301);
// exit();
так же похожая проблема наблюдается там где в WordPress 2.7 не вносилось никаких изменений.
Огромная просьба помочь в решение проблемы!!!
Спасибо за такую нормально написанную статью прочёл перед этой на 15 сайтаx подобную но не то, а здесь самый раз
Нашел одно решение, которое определяет тип домена во время установки wordpress: http://makegood.ru/wordpress/1/
Другие способы на wordpress не работают, либо плохо искал…
Скажите, пожалуйста, где прописывать редирект, если сайт переехал на новый домен, а к старому домену нет доступа? Поисковики его находят, а при переходе выдают “сервер не найден”. При этом новый домен Яндекс проиндексировал, а Гугл отказывается…
Огромное спасибо! Дано искал как сделать, чтобы сайт выводился без www, но все не мог найти. Теперь сделал и все работает
Еще раз спасибо!
Добрый день, прочитал Вашу статью, очень полезная, но актуальна ли она для сайтов созданных в системе укоз.ру Первоначально сайт продвигался без www в дальнейшем с www Вопрос, как привести все в порядок в соответствии с Вашими рекомендациями. Работает ли все это на конструкторе укоза или это не возможно. Спасибо.
Спасибо большое за статью - прошу совета
Допустим создавался ГС - постепенно превратился в СДЛ и хочу перенести его на другой домен. Вопрос - Если я сделаю так
1. Подключу вордпрессовский плагин Exec-Php
2. Закину в текстовый виджет это
то будет происходить перенаправление на новый домен
но вопрос - Будет ли при этом перетекать Тиц и Pr?
Заранее спасибо кто откликнеться…
не отпечатался код - под ЭТО подразумевался php код редиректа
Удачно я к вам зашел. спасибо за материал, сделал все по инструкции, прекрасно работает (сервер Unix)
301-й редирект актуален как для Яндекса, так и для Google?
Скажите, а как сделать редирект со старой страницы на новую?
То есть у меня была страница, ее пришлось удалить и сделать новую с другим урлом. Можно как-то перенести и ссылочное, и чтобы посетителя перебрасывало на новую страничку?
Очень понятно и доступно расписано, большое спасибо!
Димон, конечно можно сделать. Чтобы переадресовать только страницу, сохранив PR старой страницы:
Redirect 301 /old/old.html http://www.сайт.ru/new.html
где: /old/old.html - путь и имя старой страницы
Добрый день.
А куда именно ставить
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example.ru
RewriteRule (.*) http://www.example.ru/1 [R=301,L]
в файле .htaccess
Не в любое же место этого файла.
Вот мой файл .htaccess:
Начало:
# -FrontPage-
AuthUserFile /home/yyyyy/public_html/_vti_pvt/service.pwd
AuthGroupFile /home/yyyyy/public_html/_vti_pvt/service.grp
order deny,allow
deny from all
allow from all
order deny,allow
deny from all
AuthName http://www.5english.com
IndexIgnore .htaccess */.??* *~ *# */HEADER* */README* */_vti*
Конец.
Где размещать указанный код? Спасибо.