Содержание

Htaccess редирект с www и без www (301)

  1. SEO Блог
  2. Создание сайта
2011-08-23

Для поисковых систем домен с www и домен без www — это два разных ресурса и для того, чтобы они правильно его воспринимали, индексировали и ранжировали как единое и уникальное целое нужен 301 редирект («перенесен навсегда») с одного домена на другой.
Самый простой вариант редиректа — при помощи файла .htaccess, который находится в корне сайта, для его осуществления необходим включенный модуль mod_rewrite. А в случае если этот моду выключен или у вас нет доступа к файлу htaccess, вы можете использовать редирект на PHP.

301 редирект с www

Существует несколько правильных вариантов 301 редиректа в htaccess, и какой из них вы выберете не имеет никакого значения.

Первый самый простой и понятный вариант редиректа с www:

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

Второй вариант редиректа с www:

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

Третий с условием от противного вариант редиректа с www:

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

301 редирект на www

Как и в редиректе с www, для редиректа на www есть несколько правильных способов, выбирайте который по душе.
Первый вариант редиректа на www:

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

Второй вариант вариант редиректа на www с условием от противного:

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

Для редиректов отдельных страниц, файлов и даже бана пользователей при помощи htaccess вы можете воспользоваться генератором редиректов.

Важно!

Не забываем, поставив редирект с одного домена на другой, выбрать свой предпочтительный домен в аккаунте Google, а для Яндекса прописать в файле robots.txt директиву: «Host: site.ru».

После переиндексации сайта желательно зайти в панель управления сайтом Яндекс Вебмастер и Google веб мастер и проверить правильно ли проиндексировались страницы, нету ли каких-либо ошибок или недоступных страниц, и только если все в порядке можно спать спокойно — пере адресация настроена правильно и без ошибок.

Комментарии к статье

← Предыдущая статьяСледующая статья →

seodiz.ru

301 редирект с www на без www в htaccess и директивой host

301 редирект с www на домен без www это тот элемент настройки сайта, о котором начинающие вебмастера даже не задумываются. Обычно, до него добираются только те, кто прожил в сети достаточно долго, чтобы перейти с поверхностных тем по оптимизации сайта на более глубокие. Между тем, отсутствие правильной настройки главного зеркала сайта может подкинуть немало головных болей в процессе продвижения.

Эта проблема заключается в отображении вашего блога или сайта с приставкой www или без нее. По обычной логике, поддомен с www представляет собой тот же самый сайт, но для поисковых роботов доменное имя, содержащее www является совершенно другим адресом, а значит и сайтом. В какой-то мере поисковики пытаются совместить эти разные адреса сайта, но без помощи вебмастера у них это получается не всегда.

Сайт или блог должен обязательно иметь 301 редирект (redirect) с одного домена на другой. Он должен быть настроен таким образом, чтобы один из сайтов (с www или без www) стал бы главным. Вот, например для моего блога главным адресом является DmitriyZhilin.ru, но если в поисковой системе набрать адрес www.DmitriyZhilin.ru, то вас автоматически перебросит на DmitriyZhilin.ru. Спрашивается, зачем это придумали? И зачем это нужно?

Сейчас, я постараюсь ответить на эти вопросы.

Что будет, если не настраивать 301 редирект

Вот смотрите. Поисковые системы видят www.DmitriyZhilin.ru и DmitriyZhilin.ru, как совершенно разные сайты. К чему это приводит?

А последствия такие:

1. Разделение ссылочной массы

Внешние ссылки, которые ссылаются на ваш сайт будут автоматически разделены на 2 части. То есть смотрите, на каком то блоге, допустим, с показателем ТИЦ 50 PR 3 поставили ссылку на DmitriyZhilin.ru, а на другом ресурсе с показателями ТИЦ 1200 PR 7 поставил ссылку на www.DmitriyZhilin.ru. А я решил продвигать свой ресурс по адресу без www. Получается, что вторую жирную ссылку я теряю и будет она уже указывать не на продвигаемый мной домен, а на двойника (идентичного моему сайту, но находящемуся по другому адресу). Отсюда делаем вывод

dmitriyzhilin.ru

www на без www, http на https, с домена на другой домен

Три важных совета и семнадцать конкретных примеров установки 301 переадресации страниц через htaccess!

Советы

  • Располагайте переадресации страниц в файле от частных к более глобальным (сверху вниз). Например: простая переадресация двух страниц стоит выше, чем глобальное правило редиректов с www на без www.
  • Избегайте двух, трех и т.д. последовательных редиректов. Правила должны быть настроены так, что при возникновении редиректа он должен перенаправлять пользователя (робота) только один (!) раз. Каждое лишнее переадресация – это секунды драгоценного времени отдачи страницы, это нагрузка на сервер, это нечеткие команды для поисковых роботов.
  • Не забывайте, что многие браузеры кешируют (запоминают редиректы), поэтому проверять переадресации лучше на сайте – http://www.bertal.ru.

Правила переадресаций

1. 301 редирект с одной страницы на другую

Самый простой вариант

1
Redirect 301 /test-1/ http://site.ru/test-2/

Redirect 301 /test-1/ http://site.ru/test-2/

Более подробный

1
2
RewriteCond %{REQUEST_URI} ^/test/$
RewriteRule ^.*$ http://site.ru/new-test/? [R=301,L]

RewriteCond %{REQUEST_URI} ^/test/$ RewriteRule ^.*$ http://site.ru/new-test/? [R=301,L]

2. 301 редирект с www на без www (главное зеркало – домен без www)

1
2
RewriteCond %{HTTP_HOST} ^www\.(.*)$
RewriteRule ^(.*)$ http://%1/$1 [L,R=301]

RewriteCond %{HTTP_HOST} ^www\.(.*)$ RewriteRule ^(.*)$ http://%1/$1 [L,R=301]

3. 301 редирект с без www на www (главное зеркало – домен с www)

1
2
RewriteCond %{HTTP_HOST} ^([^www].*)$
RewriteRule ^(.*)$ http://www.%1/$1 [L,R=301]

RewriteCond %{HTTP_HOST} ^([^www].*)$ RewriteRule ^(.*)$ http://www.%1/$1 [L,R=301]

4. 301 редирект со страниц со слешем на без слеша (весь сайт)

1
2
3
4
5
6
RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&amp;
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} ![^\/]$
RewriteRule ^(.*)\/$ /$1 [R=301,L]

RewriteCond %{REQUEST_URI} !\? RewriteCond %{REQUEST_URI} !\&amp; RewriteCond %{REQUEST_URI} !\= RewriteCond %{REQUEST_URI} !\. RewriteCond %{REQUEST_URI} ![^\/]$ RewriteRule ^(.*)\/$ /$1 [R=301,L]

5. 301 редирект со страниц без слеша на слеш (часто в CMS системах устанавливается автоматически)

1
2
3
4
5
6
RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&amp;
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} !\/$
RewriteRule ^(.*[^\/])$ /$1/ [R=301,L]

RewriteCond %{REQUEST_URI} !\? RewriteCond %{REQUEST_URI} !\&amp; RewriteCond %{REQUEST_URI} !\= RewriteCond %{REQUEST_URI} !\. RewriteCond %{REQUEST_URI} !\/$ RewriteRule ^(.*[^\/])$ /$1/ [R=301,L]

6. Один (а не два последовательных!) 301 редирект на без www и с слешем на конце адреса страницы

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&amp;
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} !\/$
RewriteCond %{HTTP_HOST} ^www\.(.*)$
RewriteRule ^(.*)$ http://%1/$1/ [L,R=301]
 
RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&amp;
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} ![^\/]$
RewriteCond %{HTTP_HOST} ^www\.(.*)$
RewriteRule ^(.*)$ http://%1/$1 [L,R=301]
 
RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&amp;
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} !\/$
RewriteCond %{HTTP_HOST} ^([^www].*)$
RewriteRule ^(.*)$ http://%1/$1/ [L,R=301]

RewriteCond %{REQUEST_URI} !\? RewriteCond %{REQUEST_URI} !\&amp; RewriteCond %{REQUEST_URI} !\= RewriteCond %{REQUEST_URI} !\. RewriteCond %{REQUEST_URI} !\/$ RewriteCond %{HTTP_HOST} ^www\.(.*)$ RewriteRule ^(.*)$ http://%1/$1/ [L,R=301] RewriteCond %{REQUEST_URI} !\? RewriteCond %{REQUEST_URI} !\&amp; RewriteCond %{REQUEST_URI} !\= RewriteCond %{REQUEST_URI} !\. RewriteCond %{REQUEST_URI} ![^\/]$ RewriteCond %{HTTP_HOST} ^www\.(.*)$ RewriteRule ^(.*)$ http://%1/$1 [L,R=301] RewriteCond %{REQUEST_URI} !\? RewriteCond %{REQUEST_URI} !\&amp; RewriteCond %{REQUEST_URI} !\= RewriteCond %{REQUEST_URI} !\. RewriteCond %{REQUEST_URI} !\/$ RewriteCond %{HTTP_HOST} ^([^www].*)$ RewriteRule ^(.*)$ http://%1/$1/ [L,R=301]

7. Один (а не два последовательных!) 301 редирект на c www и со слешем на конце адреса страницы

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&amp;
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} !\/$
RewriteCond %{HTTP_HOST} ^www\.(.*)$
RewriteRule ^(.*)$ http://www.%1/$1/ [L,R=301]
 
RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&amp;
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} !\/$
RewriteCond %{HTTP_HOST} ^([^www].*)$
RewriteRule ^(.*)$ http://www.%1/$1/ [L,R=301]
 
RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&amp;
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} ![^\/]$
RewriteCond %{HTTP_HOST} ^([^www].*)$
RewriteRule ^(.*)$ http://www.%1/$1 [L,R=301]

RewriteCond %{REQUEST_URI} !\? RewriteCond %{REQUEST_URI} !\&amp; RewriteCond %{REQUEST_URI} !\= RewriteCond %{REQUEST_URI} !\. RewriteCond %{REQUEST_URI} !\/$ RewriteCond %{HTTP_HOST} ^www\.(.*)$ RewriteRule ^(.*)$ http://www.%1/$1/ [L,R=301] RewriteCond %{REQUEST_URI} !\? RewriteCond %{REQUEST_URI} !\&amp; RewriteCond %{REQUEST_URI} !\= RewriteCond %{REQUEST_URI} !\. RewriteCond %{REQUEST_URI} !\/$ RewriteCond %{HTTP_HOST} ^([^www].*)$ RewriteRule ^(.*)$ http://www.%1/$1/ [L,R=301] RewriteCond %{REQUEST_URI} !\? RewriteCond %{REQUEST_URI} !\&amp; RewriteCond %{REQUEST_URI} !\= RewriteCond %{REQUEST_URI} !\. RewriteCond %{REQUEST_URI} ![^\/]$ RewriteCond %{HTTP_HOST} ^([^www].*)$ RewriteRule ^(.*)$ http://www.%1/$1 [L,R=301]

8. Один (а не два последовательных!) 301 редирект на c www и без слеша на конце адреса страницы

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
RewriteCond %{REQUEST_URI} ^\/$
RewriteCond %{HTTP_HOST} ^([^www].*)$
RewriteRule ^(.*)$ http://www.%1/$1 [L,R=301]
 
RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&amp;
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} \/$
RewriteCond %{HTTP_HOST} ^www\.(.*)$
RewriteRule ^(.*)\/$ http://www.%1/$1 [L,R=301]
 
RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&amp;
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} !\/$
RewriteCond %{HTTP_HOST} ^([^www].*)$
RewriteRule ^(.*)$ http://www.%1/$1 [L,R=301]
 
RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&amp;
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} \/$
RewriteCond %{HTTP_HOST} ^([^www].*)$
RewriteRule ^(.*)\/$ http://www.%1/$1 [L,R=301]

RewriteCond %{REQUEST_URI} ^\/$ RewriteCond %{HTTP_HOST} ^([^www].*)$ RewriteRule ^(.*)$ http://www.%1/$1 [L,R=301] RewriteCond %{REQUEST_URI} !\? RewriteCond %{REQUEST_URI} !\&amp; RewriteCond %{REQUEST_URI} !\= RewriteCond %{REQUEST_URI} !\. RewriteCond %{REQUEST_URI} \/$ RewriteCond %{HTTP_HOST} ^www\.(.*)$ RewriteRule ^(.*)\/$ http://www.%1/$1 [L,R=301] RewriteCond %{REQUEST_URI} !\? RewriteCond %{REQUEST_URI} !\&amp; RewriteCond %{REQUEST_URI} !\= RewriteCond %{REQUEST_URI} !\. RewriteCond %{REQUEST_URI} !\/$ RewriteCond %{HTTP_HOST} ^([^www].*)$ RewriteRule ^(.*)$ http://www.%1/$1 [L,R=301] RewriteCond %{REQUEST_URI} !\? RewriteCond %{REQUEST_URI} !\&amp; RewriteCond %{REQUEST_URI} !\= RewriteCond %{REQUEST_URI} !\. RewriteCond %{REQUEST_URI} \/$ RewriteCond %{HTTP_HOST} ^([^www].*)$ RewriteRule ^(.*)\/$ http://www.%1/$1 [L,R=301]

9. Один (а не два последовательных!) 301 редирект на без www и без слеша на конце адреса страницы

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
RewriteCond %{REQUEST_URI} ^\/$
RewriteCond %{HTTP_HOST} ^www\.(.*)$
RewriteRule ^(.*)$ http://%1/$1 [L,R=301]
 
RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&amp;
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} \/$ 
RewriteCond %{HTTP_HOST} ^www\.(.*)$
RewriteRule ^(.*)\/$ http://%1/$1 [L,R=301]
 
RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&amp;
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} !\/$
RewriteCond %{HTTP_HOST} ^www\.(.*)$
RewriteRule ^(.*)$ http://%1/$1 [L,R=301]
 
RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&amp;
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} \/$
RewriteCond %{HTTP_HOST} ^([^www].*)$
RewriteRule ^(.*)\/$ http://%1/$1 [L,R=301]

RewriteCond %{REQUEST_URI} ^\/$ RewriteCond %{HTTP_HOST} ^www\.(.*)$ RewriteRule ^(.*)$ http://%1/$1 [L,R=301] RewriteCond %{REQUEST_URI} !\? RewriteCond %{REQUEST_URI} !\&amp; RewriteCond %{REQUEST_URI} !\= RewriteCond %{REQUEST_URI} !\. RewriteCond %{REQUEST_URI} \/$ RewriteCond %{HTTP_HOST} ^www\.(.*)$ RewriteRule ^(.*)\/$ http://%1/$1 [L,R=301] RewriteCond %{REQUEST_URI} !\? RewriteCond %{REQUEST_URI} !\&amp; RewriteCond %{REQUEST_URI} !\= RewriteCond %{REQUEST_URI} !\. RewriteCond %{REQUEST_URI} !\/$ RewriteCond %{HTTP_HOST} ^www\.(.*)$ RewriteRule ^(.*)$ http://%1/$1 [L,R=301] RewriteCond %{REQUEST_URI} !\? RewriteCond %{REQUEST_URI} !\&amp; RewriteCond %{REQUEST_URI} !\= RewriteCond %{REQUEST_URI} !\. RewriteCond %{REQUEST_URI} \/$ RewriteCond %{HTTP_HOST} ^([^www].*)$ RewriteRule ^(.*)\/$ http://%1/$1 [L,R=301]

10. 301 редирект только адреса site.ru/index.php (без GET параметров) на основное зеркало site.ru

1
2
3
RewriteCond %{REQUEST_URI} /index.php
RewriteCond %{QUERY_STRING} ^\z
RewriteRule ^(.*)$ http://site.ru/? [R=301,L]

RewriteCond %{REQUEST_URI} /index.php RewriteCond %{QUERY_STRING} ^\z RewriteRule ^(.*)$ http://site.ru/? [R=301,L]

11. 301 редирект всех адресов с index.php и GET параметрами на страницы только с GET параметрами (вырезать в url index.php)

Пример: типа site.ru/index.php?n=1 на site.ru/?n=1

1
2
RewriteCond %{REQUEST_URI} /index.php
RewriteRule ^(.*)$ http://site.ru/ [R=301,L]

RewriteCond %{REQUEST_URI} /index.php RewriteRule ^(.*)$ http://site.ru/ [R=301,L]

12. 301 редирект для index.php, index.html или index.htm (например в Joomla), массовая склейка

1
2
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.(php|html|htm)\ HTTP/ 
RewriteRule ^(.*)index\.(php|html|htm)$ http://site.ru/$1 [R=301,L]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.(php|html|htm)\ HTTP/ RewriteRule ^(.*)index\.(php|html|htm)$ http://site.ru/$1 [R=301,L]

13. 301 редирект url с GET параметрами (динамический URL) на статический

1 вариант (простой адрес с GET параметром)

1
2
RewriteCond %{QUERY_STRING} ^id=229
RewriteRule ^.*$ /supermodel/? [R=301,L]

RewriteCond %{QUERY_STRING} ^id=229 RewriteRule ^.*$ /supermodel/? [R=301,L]

2 вариант (со страницы и GET параметром)

1
2
3
RewriteCond %{REQUEST_URI} /test/
RewriteCond %{QUERY_STRING} ^id=229
RewriteRule ^.*$ /supermodel/? [R=301,L]

RewriteCond %{REQUEST_URI} /test/ RewriteCond %{QUERY_STRING} ^id=229 RewriteRule ^.*$ /supermodel/? [R=301,L]

14. Все страницы одного домена на главную страницу другого домена

1
2
RewriteCond %{REQUEST_URI} (.*)
RewriteRule ^(.*)$ http://site.ru/ [L,R=301]

RewriteCond %{REQUEST_URI} (.*) RewriteRule ^(.*)$ http://site.ru/ [L,R=301]

15. Каждая страница одного домена на такой же адрес другого url

1
2
RewriteCond %{REQUEST_URI} (.*)
RewriteRule ^(.*)$ http://site.ru/$1 [L,R=301]

RewriteCond %{REQUEST_URI} (.*) RewriteRule ^(.*)$ http://site.ru/$1 [L,R=301]

16. Редирект с протокола http на https.

1
2
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

RewriteCond %{HTTPS} !=on RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

Если возникает циклический редирект, то воспользуйтесь этим вариантом:

1
2
3
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

RewriteCond %{HTTPS} off RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Для Битрикс-сайтов на хостинге reg.ru

1
2
RewriteCond %{SERVER_PORT} !^443$
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R,L]

RewriteCond %{SERVER_PORT} !^443$ RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R,L]

Для сертификатов https c Cloudflare:

1
2
3
4
RewriteCond %{HTTP:CF-Visitor} '"scheme":"http"'
# Without Cloudflare:
# RewriteCond %{HTTPS} off 
RewriteRule ^ https://www.example.com%{REQUEST_URI} [NE,R=301,L]

RewriteCond %{HTTP:CF-Visitor} ‘»scheme»:»http»‘ # Without Cloudflare: # RewriteCond %{HTTPS} off RewriteRule ^ https://www.example.com%{REQUEST_URI} [NE,R=301,L]

17. Редирект с протокола https на http.

Обратный редирект, если перестали использовать SSL сертификат.

1
2
RewriteCond %{HTTPS} =on
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301,L]

RewriteCond %{HTTPS} =on RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301,L]

UPDATE 06/06/2019

Автор

Андрей Воскобойников

web-optimizator.com

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 редирект: Переадресовываем всех со старого домена на новый, полностью сохраняя ссылочную структуру сайта.

Установка 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

www.seoschool.ru

как его сделать, настроить и проверить

Тематический трафик – альтернативный подход в продвижении бизнеса

Мы выпустили новую книгу «Контент-маркетинг в социальных сетях: Как засесть в голову подписчиков и влюбить их в свой бренд».

Подпишись на рассылку и получи книгу в подарок!

Редирект с www на без www – перенаправление пользователя и поисковых систем на главное зеркало сайта, которое не содержит префикса WWW перед именем домена.


Больше видео на нашем канале — изучайте интернет-маркетинг с SEMANTICA

Пример: есть сайт www.site.ru, мы настраиваем переадресацию с него на site.ru. В итоге, когда пользователь будет переходить по первой ссылке, она будет отсылать вас на вторую. То есть, после введения в браузерную строку www.site.ru, при включенном перенаправлении откроется страница site.ru.

Использование на практике

Проблема в том, что для поисковых систем домен с префиксом www – это один сайт , а без – другой.
Такое разделение, безусловно, не идет на пользу позициям в поиске. Причины тому две:

Деление ссылочной массы

Все мы знаем, что от количества внешних ссылок на сайт зависит и степень его трастовости. В целом, внешняя ссылочная масса по-прежнему играет большую роль в ранжировании страниц. При ненастроенном перенаправлении, как уже писалось, поисковые системы распознают www.site.ru и site.ru как два разных. Вы никогда не угадаете, какой вариант будет использовать проставляющий внешние ссылки на ваши страницы человек, и поэтому PR и ТИЦ будет распределяться неравномерно по двум разным доменам. Вот почему редирект с www на без www имеет такое большое значение в SEO продвижении.

Дублирование сайта

Много проблем вебмастерам доставила и ситуация с уникальностью контента. Дело в том, что иногда поисковые системы заходят сначала, допустим, на site.ru, а потом на www.site.ru. Разумеется, на обоих адресах размещен один и тот же контент, и статьи появляются по обоим адресам одновременно. Зайдя сначала на site.ru, а потом проверив вариант с префиксом, поисковый бот решит, что второй сайт просто скопировал контент с первого, и понизит его позиции в поиске.

Что такое редирект 301 с www на без www

Redirect 301 – это постоянное перенаправление с одного URLа на другой. Такой тип переадресации просто пересылает и пользователей, и поисковые машины на другой URL. Помимо данного типа перенаправления существуют еще и временный, но его для перевода пользователя с адреса с www на без www не используют, а значит и рассматривать его в этой статье смысла нет.

Как настроить редирект с www на без www

Есть несколько способов настройки переадресации:

  • Через .htaccess. Для использования этого способа у вас должен быть доступ к файлу .htaccess, который находится в корневом каталоге вашего сайта. Если доступа нет, необходимо обратиться в службу поддержки для его получения. Файл можно загрузить через FTP соединение и затем модифицировать в блокноте. Важное примечание: сохранять файл необходимо в кодировке UNIX.
    Итак, чтобы сделать переадресацию с без www на www, необходимо добавить к уже существующим в файле .htaccess файле строкам новые:
    <IfModule mod_rewrite.c >
    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^domain\.com [NC]
    RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]
    < /IfModule >
    Все, что нужно сделать вам – поменять domain.com на свой домен.
    Чтобы сделать редирект с www на без www необходимо прописать другой код:
    <IfModule mod_rewrite.c >
    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^www\.domain\.com [NC]
    RewriteRule ^(.*)$ http://domain.com/$1 [L,R=301]
    < /IfModule >
  • Некоторые панели управления предусматривают возможность добавления редиректа через обычный интерфейс. Стоит поискать в разделе «Домены» вашего провайдера. Никогда не стесняйтесь задать вопрос службе поддержки – возможно, именно она поможет вам с проблемой, если она возникла

Также рекомендуется добавить собственные сайты в сервисы для вебмастеров от Google и Yandex. В этих сервисах также можно настроить предпочтения по выводу домена в результаты поиска с/без префиксом.

В обоих сервисах сделать это можно практически одинаково. Сначала необходимо открыть настройки сайта. В Google Webmaster Tools уже на этом этапе настройка заканчивается: в разделе “Site Settings” вы выбираете один из вариантов написания адреса.

В Яндекс Вебмастере же вам нужно будет поискать вкладку «Настройки индексирования» —> «Главное зеркало». Под надписью «Изменить главное зеркало» список с доступными вариантами отображения – выбираете тот, который вам по вкусу.

Стоит отметить, что распознавание редиректа займет у поискового бота некоторое время, поэтому не стоит паниковать, если результат в поиске не проявился сразу. Обычно поисковые машины обновляют выдачу раз в несколько дней, поэтому наберитесь терпения.

Как проверить редирект с www на без www

Иногда поисковые системы сами производят склейку домена. Но даже в таком случае, лучше все же самостоятельно указать нужный адрес. Слишком уж большое значение правильно определенное зеркало имеет для SEO.

После того, как вы, воспользовавшись одним из представленных способов, произвели необходимые изменения в вебмастере, нужно проверить, как работает сам редирект. Для этого можно воспользоваться любым сервисом из поисковика, доступного по запросу «проверка 301 переадресации».

После введения вами URL сайта(например, site.ru) и условии успешного выполнения перенаправления, вы увидите примерно следующие строки:

301 редирект (перемещено постоянно) на адрес https://www.site.ru/

Вводить в строку URL нужно именно тот адрес, с которого идет перенаправление.

Проверка должна выдать результат сразу, таким, каков он есть. Если вы не увидите числа 301, значит что-то работает неверно. Еще раз проверьте код, настройки и прочее.

Вам нужно добиться именно этот  результат.

Редирект с www на без www или наоборот: какой вариант лучше

Некоторые люди полагают, что для SEO существует разница между доменом с префиксом и без него. На самом деле, это не так. Разница между двумя вариантами отображения вашего домена заключается лишь во внешнем виде. Многим людям, к слову, кажется, что с префиксом адрес страницы выглядит более привлекательным, а не «голым», как при его отсутствии. Но мы повторим еще раз: выбор в данной ситуации – дело каждого. Главное этот выбор сделать, и настроить переадресацию с www на без www или наоборот.

Надеемся, что эта статья, наконец, показала вам важность перенаправления в SEO и помогла вам в установке оного на собственный сайт. Теперь ваши вопросы насчет написания домена с WWW и без www должны быть решены – оба варианта одинаковы для поисковых машин.

semantica.in

Как настроить переадресацию на домен БЕЗ «www»?

Через панель управления хостингом

Как открыть панель управления хостингом

ISPmanager

В случае с ISPmanager мы рекомендуем настраивать переадресацию через файл .htaccess. Ниже описано как это сделать.

Parallels Plesk Onyx 17

  1. 1в разделе «Сайты и домены» кликните Настройки хостинга рядом с необходимым доменом:
  2. 2

    в пункте «Предпочтительный домен» выберите домен без «www»: ![](https://img.reg.ru//faq/kak-nastroit-pereadresatsiyu-na-domen-bez-www-2.jpg)

    нажмите Применить внизу страницы для добавления перенаправления.

cPanel

  1. 1в блоке «Домены» кликните Перенаправления:
  2. 2

    в открывшемся окне выполните следующие настройки:

    в выпадающем списке выберите необходимый домен; в поле «Перенаправляет на» пропишите ваш домен с префиксом http:// и выберите пункт «Перенаправлять только с www»:

    нажмите Добавить для добавления перенаправления.

Через файл .htaccess (только на Linux)

Перейдите в корневой каталог вашего сайта и добавьте в файл .htaccess (точка в начале важна) следующие строки:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.site.ru$ [NC]
RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]

здесь site.ru — имя вашего домена.

Если файла .htaccess не существует, просто создайте его.

Редирект с помощью Nginx

Добавление редиректа с помощью Nginx доступно только на VPS-сервере. Настраивается перенаправление по инструкции.

www.reg.ru

Apache редирект с www на без www c https

Все больше сайтов используют защищенный протокол https.
И для СЕО важно обозначить главный домен, по которому и будет идти трафик на сайт.
Известно, что http://site.com и https://site.com , http://www.site.com и
 https://www.site.com это все разные домены и крайне важно выбрать предпочтительный,и
с других зеркал сделать перенаправления на него.

Здесь я показываю, как перенаправить сайт с www на без-www (или наоборот) и с HTTP
на HTTPS, используя конфигурацию сервера Apache. Для этих целей будет использоваться
файл .htaccess.

Введение

Итак, нужно перенаправить следующие хосты:

http://site.com
http://www.site.com
https://www.site.com

На этот хост:

https://site.com

Я также покажу как перенаправить не-www на www-версию, если вы предпочитаете www.

Конфигурация Apache

Чтобы настроить перенаправления, добавьте следующее правило перенаправления либо
в конфигурационный файл Apache, если у вас есть к нему доступ, либо в .htaccess
в корне вашего сайта:
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [L,NE,R=301]​

Если вместо https://site.com вы хотите, чтобы URL-адрес по умолчанию был https://www.site.com,
просто измените третью и пятую строки:
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [L,NE,R=301]​

Как это работает

Давайте попробуем понять, как работает конфигурация. Это поможет вам при
необходимости внести необходимые изменения.
RewriteEngine On​

Эта строка включает механизм перезаписи времени выполнения Apache,
необходимый для выполнения перенаправления.
Возможно, вы уже включили его в конфигурации в том же файле.
Если это так, вы можете пропустить эту строку.
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]​

Эти две строки являются условиями переадресации, они используются для определения
необходимости перенаправления запроса. Поскольку условия объеденены с [OR] ,
то это значит что если какое-либо из этих двух условий возвращает true, Apache выполнит правило
перезаписи (перенаправление). Первое условие определяет, использует ли запрос
URL-адрес, отличный от HTTPS. Второе условие определяет, использует ли запрос
URL-адрес www. Обратите внимание, что я использовал www \. а не www. , потому что
шаблон является регулярным выражением и. точка здесь имеет особое значение,
поэтому ее нужно экранировать.
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]​

Четвертая строка — удобная строка, которую я использовал, чтобы избежать дублирование
имени хоста непосредственно в URL-адресе. Он соответствует HOST входящего запроса и
разлагает его на www-часть (если есть) и остальную часть имени хоста.
(?:www\.) — это часть регулярки называется пассивная группа. Эта часть убирает www если
оно есть в урле.
Мы будем ссылаться на него позже с помощью алиаса в виде %1 в RewriteRule. Если вы заранее знаете имя хоста, вы
можете улучшить правило, введя URL-адрес и пропустив это условие.
RewriteRule ^ https://www.%1%{REQUEST_URI} [L,NE,R=301]​

До этого были условия, а эта строка — само правило перезаписи.
С помощью этой строки мы сообщаем Apache перенаправить любой запрос на новый

URL-адрес, составленный:

https://www.  — нужный формат урла
%1: ссылка на не-www часть хоста
% {REQUEST_URI}: URI запроса без имени хоста (какие-то параметры get)

Наконец, мы добавляем 3 флага:

NE не экранировать специальные символы
R=301 для использования статуса перенаправления HTTP 301 редирект
L прекратить обработку других правил и немедленно перенаправить

Замечания

Как я уже упоминал, в моем примере используется дополнительная строка RewriteCond для предотвращения дублирования www хоста.
Однако Вы можете встроить хост непосредственно в правило:
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteRule ^ https://site.com%{REQUEST_URI} [L,NE,R=301]​

Тогда можно обойтись без RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]

Пользуйтесь этими правилами, они простые и вполне эффективные.

coderius.biz.ua

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

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