Редирект без www на www htaccess

  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 веб мастер и проверить правильно ли проиндексировались страницы, нету ли каких-либо ошибок или недоступных страниц, и только если все в порядке можно спать спокойно — пере адресация настроена правильно и без ошибок.

Читайте также: редиректы домены htaccess

  • Бесплатная и быстрая CMS для вашего блога
  • Как дешевле купить качественные статьи — советы копирайтера со стажем
  • Копирайтинг — Уникальный контент для сайта чужими руками
  • Английский МФА — Начало завоевания англоязычного интернета
  • Запрет доступа к сайту с домена или IP
  • Платный хостинг бесплатно
  • Купить домен просто, а выбрать ему имя тяжело
  • Полный текст RSS новостей из сокращенного фида
  • Собственный Дискус или комментарии отдельно от поста
  • Самостоятельное создание логотипа для сайта онлайн

seodiz.ru

Автор: 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 – проделайте с ней еще раз все указанные выше шаги, но будьте предельно внимательны. Выверяйте каждый шаг.

Если же и сейчас ничего не получилось, то свяжитесь со службой поддержки своего хостинг-провайдера, объясните им ситуацию и пусть они примут соответствующие меры, нацеленные на решение Вашей проблемы.

www.seoschool.ru

Памятка по используемым символам и обозначениям

Строчка RewriteCond — условие выполнения правила RewriteRule. Если условие выполняется, то срабатывает редирект. Правила могут задаваться с помощью регулярных выражений.

Спецсимволы, используемые в правилах и их значения.

  • ^ — спецсимвол начала строки;
  • $ — спецсимвол конца строки;
  • ! — спецсимвол отрицания;
  • . — точка, заменяет любой символ, но только один;
  • () — группировка;
  • — «экранирующий» слеш, следующий символ после него считается обычным, а не спецсимволом;
  • # — начало текстового комментария в файле.

Модификаторы используются после обычных, спецсимволов или их групп и позволяют расширить возможности шаблонов для срабатывания правил.

  • ? — символ повторяется 0 или 1 раз.
  • + — повторяется от 1 до 65536 раз.
  • * — повторяется от 0 до 65536 раз.

Флаги, задают доп. опции для используемого правила. Перечисляются в квадратных скобках через запятую, скажем [NC] или [R=301,L].

  • NC — флаг NoCase, отключающий проверку регистра символов при срабатывании правила.
  • R — флаг Redirect, производит процесс остановки изменения URL-адреса и возвращает результат. Чаще всего используется значение R=301, но возможны и другие для временных перенаправлений (302, MOVED TEMPORARY).
  • L — флаг Last, останавливает формирования URL-адреса и строка считается окончательной.

pixelplus.ru

Введение

Ниже я покажу, как перенаправить сайт с www на без-www (или наоборот) и с http на https, используя конфигурацию сервера Apache. Чтобы стало понятнее, конфигурация будет перенаправлять следующие имена хостов:

на

Также я покажу небольшое изменение для перенаправления без-WWW на версию с WWW, если вы предпочитаете WWW.

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

Перед тем, как сделать редирект с https на http, добавьте следующее правило перенаправления в файл конфигурации Apache (если у вас есть доступ к нему), либо в файл .htaccess, расположенный в корневом каталоге вашего сайта:


Если вместо example.com вы хотите использовать по умолчанию URL www.example.com, то просто измените третью и пятую строки:

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

Попробуем разобраться, как работает эта конфигурация htaccess редиректа http на https. Это поможет внести необходимые изменения:

Первая строка позволяет Apache запустить механизм преобразования http-ссылок, необходимый для выполнения перенаправления:

Эти две строки — условия перенаправления, они используются для определения того, должен ли запрос быть перенаправлен. Если любое из этих двух условий возвратит true, то Apache выполнит перенаправление, поскольку условия соединяются с помощью [OR].

Первое условие определяет, использует ли запрос URL не-HTTPS. Второе условие определяет, использует ли запрос URL www. Заметьте, я использовал www.а не www., потому что образец является регулярным выражением и точка здесь используется для экранирования. Следовательно, ее нужно оставить:

Четвертая строка — она соответствует имени хоста входящего запроса, и разделяет его на www часть (если таковая имеется), и остальную часть имени хоста. Мы будем ссылаться на нее позже с помощью %1 в RewriteRule.

Если вы знаете имя хоста заранее, то можно улучшить правило редиректа с http на https, встроив URL и пропустив это условие (пример ниже):

RewriteRule – центральный элемент перенаправления. С помощью этой строки мы предписываем Apache перенаправить любой запрос на новый URL, который состоит из:

  • https: // WWW;
  • %1: Ссылка на без-WWW часть хоста;
  • %{REQUEST_URL}: URL-запрос, без имени хоста.

Все эти маркеры соединены друг с другом, и представляют собой конечный URL перенаправления. В конце мы добавляем три флага:

  • NE — чтобы не выйти из специальных символов;
  • R=301 — использовать HTTP статус 301 редиректа;
  • L — прекратить обработку других правил, и немедленно перенаправить.

Замечания

В моём примере htaccess редиректа http на https используется дополнительная строка RewriteCond, чтобы извлечь имя хоста, а не подставлять имя в правило. Если чувствуете, что для вас это — потеря производительности, то можете встроить хост непосредственно в правило:

Заключение

В данной статье представлена простая конфигурация перенаправления WWW и не-HTTPS запросов для домена сайта. Таким образом можно избежать проблем с дублированием контента в поисковых системах.

Перевод статьи “Apache redirect www to non-www and HTTP to HTTPS” был подготовлен дружной командой проекта Сайтостроение от А до Я.

www.internet-technologies.ru

Почему нужно описывать в htaccess 301 редирект?

Если вы задали в файле htaccess 301 редирект на главное зеркало вашего сайта:

  • Яндекс правильно определит главное зеркало именно то, которое хотите вы, а не то, что он посчитает нужным.
  • Google в результатах поиска так же будет отображать нужный домен.

Дополнительно желательно прописать в файле robots.txt директиву Host: www.site.ru. Вместо www.site.ru – указать главное зеркало вашего сайта.

Варианты 301 редиректа

Рассмотрим директивы в htaccess для 301 редиректа как для варианта с www, так и без www.

Важно: для корректной работы 301 редиректа требуется активировать модуль Apache mod_rewrite! Если модуль не подключен, ваши директивы будут проигнорированы.

301 редирект для сайта С www

Описать в htaccess 301 редирект можно несколькими способами. Приведу наиболее распространенные. Какой использовать вам – решайте сами.

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

<IfModule mod_rewrite.c>   Options +FollowSymLinks   RewriteEngine On   RewriteCond %{HTTP_HOST} ^site.ru$ [NC]   RewriteRule ^(.*)$ http://www.site.ru/$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 редирект для сайта БЕЗ www

Как и для сайтов с www описать в htaccess 301 редирект для сайта без 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>

Второй вариант: универсальный набор директив без учета имени домена

Этот вариант можно переносить на разные сайты без изменений. Директивы будут работать везде правильно.

<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} !^site.ru$ [NC]   RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]  </IfModule>

www.msav.ru

Добрый день. Не могу найти 301 редирект со страниц без слеша на слеш, ваши варианты тоже не подошли, можете помочь? Ниже предоставляю свой файл .htaccess

AddDefaultCharset UTF-8
DirectoryIndex index.php

Options All -Indexes

Header set Cache-Control “max-age=43200”

Header set Cache-Control “max-age=604800”

Header set Cache-Control “max-age=2592000”

Header unset Cache-Control

ExpiresActive On
ExpiresDefault “access plus 5 seconds”
ExpiresByType image/x-icon “access plus 2592000 seconds”
ExpiresByType image/jpeg “access plus 2592000 seconds”
ExpiresByType image/png “access plus 2592000 seconds”
ExpiresByType image/gif “access plus 2592000 seconds”
ExpiresByType application/x-shockwave-flash “access plus 2592000 seconds”
ExpiresByType text/css “access plus 604800 seconds”
ExpiresByType text/javascript “access plus 604800 seconds”
ExpiresByType application/javascript “access plus 604800 seconds”
ExpiresByType application/x-javascript “access plus 604800 seconds”
ExpiresByType text/html “access plus 43200 seconds”
ExpiresByType application/xhtml+xml “access plus 600 seconds”

php_value post_max_size 80M
php_value upload_max_filesize 50M

ErrorDocument 404 http://mir-gardin.com.ua/404.php
RewriteEngine on

RewriteCond %{HTTP_HOST} ^mir-gardin.com.ua$ [NC]

RewriteBase /
RewriteRule ^.htaccess$ – [F]

RewriteRule ^admin/$ /admin/index.php [L]
RewriteRule ^admin/promotion$ /admin/promotion.php [L]
RewriteRule ^admin/promotion/$ /admin/promotion.php [L]
RewriteRule ^admin/services$ /admin/services.php [L]
RewriteRule ^admin/services/$ /admin/services.php [L]
RewriteRule ^admin/main$ /admin/main.php [L]
RewriteRule ^admin/main/$ /admin/main.php [L]
RewriteRule ^admin/catalog$ /admin/catalog.php [L]
RewriteRule ^admin/catalog/$ /admin/catalog.php [L]
RewriteRule ^admin/contacts$ /admin/contacts.php [L]
RewriteRule ^admin/contacts/$ /admin/contacts.php [L]
RewriteRule ^admin/news$ /admin/news.php [L]
RewriteRule ^admin/news/$ /admin/news.php [L]
RewriteRule ^admin/about_us$ /admin/about_us.php [L]
RewriteRule ^admin/about_us/$ /admin/about_us.php [L]
RewriteRule ^admin/pay$ /admin/pay.php [L]
RewriteRule ^admin/pay/$ /admin/pay.php [L]
RewriteRule ^admin/reviews$ /admin/reviews.php [L]
RewriteRule ^admin/reviews/$ /admin/reviews.php [L]
RewriteRule ^admin/our_works$ /admin/faq.php [L]
RewriteRule ^admin/our_works/$ /admin/faq.php [L]
RewriteRule ^admin/producers$ /admin/producers.php [L]
RewriteRule ^admin/producers/$ /admin/producers.php [L]
RewriteRule ^admin/fotogallery$ /admin/fotogallery.php [L]
RewriteRule ^admin/fotogallery/$ /admin/fotogallery.php [L]
RewriteRule ^admin/header$ /admin/header.php [L]
RewriteRule ^admin/header/$ /admin/header.php [L]
RewriteRule ^admin/menu$ /admin/menu.php [L]
RewriteRule ^admin/menu/$ /admin/menu.php [L]
RewriteRule ^admin/options_lr$ /admin/options_lr.php [L]
RewriteRule ^admin/options_lr/$ /admin/options_lr.php [L]
RewriteRule ^admin/modules$ /admin/modules.php [L]
RewriteRule ^admin/modules/$ /admin/modules.php [L]
RewriteRule ^admin/footer$ /admin/footer.php [L]
RewriteRule ^admin/footer/$ /admin/footer.php [L]
RewriteRule ^admin/per_page$ /admin/per_page.php [L]
RewriteRule ^admin/per_page/$ /admin/per_page.php [L]
RewriteRule ^admin/rights$ /admin/rights.php [L]
RewriteRule ^admin/rights$ /admin/rights.php [L]
RewriteRule ^admin/user_data$ /admin/user_data.php [L]
RewriteRule ^admin/user_data/$ /admin/user_data.php [L]
RewriteRule ^admin/user_files$ /admin/user_files.php [L]
RewriteRule ^admin/user_files/$ /admin/user_files.php [L]
RewriteRule ^admin/meta$ /admin/meta.php [L]
RewriteRule ^admin/meta/$ /admin/meta.php [L]
RewriteRule ^admin/fav$ /admin/fav.php [L]
RewriteRule ^admin/fav/$ /admin/fav.php [L]
RewriteRule ^admin/files$ /admin/files.php [L]
RewriteRule ^admin/files/$ /admin/files.php [L]
RewriteRule ^admin/articles$ /admin/articles.php [L]
RewriteRule ^admin/articles/$ /admin/articles.php [L]

RewriteRule ^$ /index.php [L]
#RewriteRule ^404$ /404.php [L]

RewriteRule ^registration$ /registration.php [L]
RewriteRule ^registration/$ /registration.php [L]
RewriteRule ^userpanel$ /userpanel.php [L]
RewriteRule ^userpanel/$ /userpanel.php [L]
RewriteRule ^forgot_password$ /forgot_password.php [L]
RewriteRule ^forgot_password/$ /forgot_password.php [L]

RewriteRule ^feedback$ /feedback.php [L]
RewriteRule ^feedback/$ /feedback.php [L]

RewriteRule ^about_us$ /about.php [L]
RewriteRule ^about_us/$ /about.php [L]

RewriteRule ^articles$ /articles.php?page=1 [L]
RewriteRule ^articles/$ /articles.php?page=1 [L]
RewriteRule ^articles/page$ /articles.php?page=1 [L]
RewriteRule ^articles/page/$ /articles.php?page=1 [L]
RewriteRule ^articles/page/([0-9]+)/? /articles.php?page=$1 [L]

RewriteRule ^articles/topic/(.*)/? /view_article.php?id=$1 [L]

RewriteRule ^cart$ /cart.php [L]
RewriteRule ^cart/$ /cart.php [L]

RewriteRule ^catalog$ /catalog.php?page=1 [L]
RewriteRule ^catalog/$ /catalog.php?page=1 [L]
RewriteRule ^catalog/page$ /catalog.php?page=1 [L]
RewriteRule ^catalog/page/$ /catalog.php?page=1 [L]
RewriteRule ^catalog/page/([0-9]+)/? /catalog.php?page=$1 [L]

RewriteRule ^catalog/category/(.*)/page/([0-9]+)/? /catalog_by_cats.php?cat=$1&page=$2 [L]
RewriteRule ^catalog/category/(.*)? /catalog_by_cats.php?cat=$1&page=1 [L]

RewriteRule ^catalog/subcategory/(.*)/page/([0-9]+)/? /catalog_by_subcats.php?cat=$1&page=$2 [L]
RewriteRule ^catalog/subcategory/(.*)? /catalog_by_subcats.php?cat=$1&page=1 [L]

RewriteRule ^catalog/view/(.*)/? /view_item.php?id=$1 [L]

RewriteRule ^catalog/view_all/(.*)/view/(.*)/? /view_all.php?type=$1&cat=$2 [L]
RewriteRule ^catalog/view_all/(.*)? /view_all.php?type=all&cat=0 [L]

RewriteRule ^contacts$ /contacts.php [L]
RewriteRule ^contacts/$ /contacts.php [L]

RewriteRule ^our_works$ /faq.php [L]
RewriteRule ^our_works/$ /faq.php [L]

RewriteRule ^news$ /news.php?page=1 [L]
RewriteRule ^news/$ /news.php?page=1 [L]
RewriteRule ^news/page$ /news.php?page=1 [L]
RewriteRule ^news/page/$ /news.php?page=1 [L]
RewriteRule ^news/page/([0-9]+)/? /news.php?page=$1 [L]

RewriteRule ^news/topic/(.*)/? /view_news.php?id=$1 [L]

RewriteRule ^pay$ /pay.php [L]
RewriteRule ^pay/$ /pay.php [L]

RewriteRule ^producers/(.*)/page/([0-9]+)/? /producers.php?id=$1&page=$2 [L]
RewriteRule ^producers/(.*)? /producers.php?id=$1&page=1 [L]
RewriteRule ^producers$ /producers.php [L]
RewriteRule ^producers/$ /producers.php [L]

RewriteRule ^reviews$ /reviews.php [L]
RewriteRule ^reviews/$ /reviews.php [L]

RewriteRule ^search/(.*)/? /search.php?word=$1 [L]

RewriteRule ^services$ /services.php [L]
RewriteRule ^services/$ /services.php [L]

RewriteRule ^thanks$ /thanks.php [L]
RewriteRule ^thanks/$ /thanks.php [L]

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

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /index.php HTTP/
RewriteRule ^index.php$ http://mir-gardin.com.ua/ [R=301,L]

web-optimizator.com

Про редиректы с www и на https в интернете рассказано много. Однако для того, чтобы создать работоспособный редирект с www на сайт без www, нужно учесть один нюанс:
SSL сертификат должен быть действителен для обоих доменов (с www и без).

А вот и рабочий пример кода, который вы можете использовать для настройки редиректа:

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

Две строки после RewriteEngine on создают переадресацию на сайт без www.

Также убедитесь в том, что у вас настроен редирект с http на https. Это нужно, чтобы у вас была только одна версия сайта, иначе это неблагоприятно скажется на поисковом продвижении.
Такую переадресацию можно выполнить при помощи следующего кода:

RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} 

Есть также альтернативный вариант:

RewriteCond %{ENV:HTTPS} !on RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [NC,R=301,L] 

Не забывайте, что в самом верху, перед правилами RewriteCond и RewriteRule должна быть строка RewriteEngine on

В итоге код htaccess, который создает редирект с www на сайт без www и с http на https выглядит так:

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

Для htaccess есть сборник сниппетов, на все случаи жизни: https://github.com/phanan/htaccess (en)

Также очень рекомендую прочитать статью про правильный переезд на https.
Да, переехать можно и неправильно.

Успехов! Сработал ли у вас редирект, напишите в комментариях.

phpstack.ru

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

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

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

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

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

2. Уникальность контента

Возникает вопрос об уникальности контента. Не забывайте о  том, что сайт будет доступен для индексации по обоим адресам. Как вы знаете, или узнаете, авторитетные поисковые системы Яндекс, Google, Yahoo борются за уникальный контент, и на данный момент перестают индексировать абсолютно идентичные сайты, что очень и очень плохо. Объясню, как это происходит. Вот например, есть у вас домен DmitriyZhilin.ru,  на него ведет огромное количество внешних ссылок, но вот, вы публикуете новую статью и робот поисковой системы первым индексирует адрес www.DmitriyZhilin.ru, а после DmitriyZhilin.ru, отсюда получается, что DmitriyZhilin.ru является двойником (т.е. своровал контент). Ну а поисковик в свою очередь покарает вора и исключит его страницу из индекса, частое повторение такого косяка может принести и более серьезные санкции.

Плохо? Плохо, не то слово!!!!

Такие серьезные последствия можно предупредить очень простыми действиями, чем раньше вы их сделаете, тем меньше гемороя себе наживете. Называется лечение redirect 301 (постоянно перенаправление) или склейка адресов сайтов употребляемых  с www и без. Далее мы с вами поговорим о его реализации.

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

301 редирект в файле .htaccess

Заключается данный способ в том, что нужно настроить файл .htacess. Найти его можно в корневой папке блога. Его может и не быть, а так же он может быть скрыт от вас. Сначала проверим его наличие. Осуществим мы это с помощью программы FileZilla, предоставляющей нам доступ к файлу через FTP. Качаете программу FileZilla и запускаете ее. В открывшееся окно ввести IP адрес домена  и пароль доступа, которые обычно высылает вам ваш хостиг-провайдер.

Далее необходимо открыть меню СЕРВЕР и выбрать пункт ПРИНУДИТЕЛЬНО ОТОБРАЖАТЬ СКРЫТЫЕ ФАЙЛЫ.

показать скрытый htaccess

Откройте файл .htaccess с помощью текстового редактора, например Notepap++ или Akelpad (которым пользуюсь я).  В этом файле дописываем следующий блок (адрес моего блога замените на свой):

Если вы хотите сделать не так как у меня, а настроить главным зеркалом домен с www, то ваш редирект будет выглядеть вот так:

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

Если будут ошибки, убедитесь, что хостер позволяет редактировать .htaccess файл (думаю, что проблем не возникнет).

Не забывайте сделать копию первоначальной версии файла.

Директива HOST

С директивой host мы уже встречались тогда, когда делали файл robots.txt. В нашем деле (обозначения главного зеркала сайта) она играет важную роль для поисковой системы Яндекс (Гугл ее не понимает). Если вы настроили этот файл по моим рекомендациям, то данная директива уже у вас имеется и показывает роботам Яндекса основное зеркало. Если же ее нет, то вам необходимо добавить одну строчку. Эта директива является внеблоковой, поэтому пишется либо в отдельной строке, не относящейся ни к какому поисковому роботу, либо указывается в блоке для yandex.

host: dmitriyzhilin.ru

Подробнее о том, как составить файл Robots.txt для сайта можете почитать в этой статье.

Так же, главное зеркало блога, можно определить не только с помощью директивы Host, но и при помощи Инструментов для вебмастеров Яндекса — это www.webmaster.yandex.ru. Раньше аналогичная возможность была и в Google, но сейчас я ее не нашел.

Если вашего сайта в Яндекс Вебмастерс еще нет, то рекомендую поскорее его туда добавить. В инструментах для вебмастера находим раздел о настройке индексирования и там ссылку на указание главного зеркала. И там определяетесь с подходящим вам вариантом. Посмотрите на изображение ниже.

главное зеркало без www в яндекс

301 редирект с одного доменного имени на другое

Все что мы описывали можно провернуть не только с одним доменом, но и с совершенно разными (для поисковиков они все разные).

Вот например возникли у вас проблемы с вашим хостингом, или просто разонравилось доменное имя (например было plohoy-domen.ru, а захотелось ochen-horoshiy-domen.com), как сделать новое доменное имя с тем условием, чтобы статьи которые вы писали не потерялись и постоянные читатели не исчезли. Опять же в помощь вам будет 301 редирект. Открываете файл .htaccess и добавляете в него нужный блок:

Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTP_HOST} plohoy-domen.ru [NC] RewriteRule ^(.*)$ http://ochen-horoshiy-domen/$1 [R=301,L]

Теперь если в браузере вы будете набирать адрес plohoy-domen.ru, то вас автоматически будет перебрасывать на страницу ochen-horoshiy-domen.com.

Очень важно не ошибиться при выборе Host-а и в том, как будет осуществляться поиск вашего блога с www или без, так как ошибки могут привести к тому, что ваш ресурс может быть выкинут из индекса.

На этом у меня все, уважаемы читатели. Получилось достаточно много информации для размышления и для действий. Не банальная это штука правильное перенаправление доменов — ошибся и проблем не оберешься.

dmitriyzhilin.ru


You May Also Like

About the Author: admind

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

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

Adblock
detector