DLE - редирект с www на без www

А нужен ли тебе редирект?


Как мы знаем, поисковые системы поступают крайне не логично и видят, а соответственно и индексируют один и тот же сайт с www и без www , как два разных сайта. То же самое происходит и в случае http и https. Теперь нужно добавить ещё 2 варианта адреса домена: c https://www.site.ru/ и c http://site.ru. Итого имеем 4 версии ! 

Методичка или учите матчасть

Чтобы собрать все эти адреса и выступить единым фронтом, то есть 1 сайтом, а не 4 зеркалами сайта, нам нужно внести правки файла htaccess, который лежит в корне Вашего сайта на сервере. Открываю свой htaccess и вижу вот такие строки, которые отвечают за редирект с www на без www:

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

Мне почему-то не нравится, что они записаны 2 раза подряд. А ещё меня не устраивает, что эта парная комбинация выполняет 301 редирект только с главной страницы https://www.wolcha.ru на версию без www - https://wolcha.ru  . Собственно так я и проверял правильность редиректа: добавлял www в адрес сайта и смотрел будет ли выполняться переадресация. 

Проверяем правильность настройки редиректа

Ещё я заходил на разного рода сервисы и тоже проверял правильность настройки редиректа, через них :

И сначала было всё ровно. И я возрадовался, и даже чуточку был горд собой.

Однако позднее, мне пришло в голову проверить как работает редирект на других страницах. Я открыл сайт, открыл новость, добавил в url www и ... Не работает!!! Бегу на другой, более информативный ресурс, выполняю анализ сайта и действительно :

Теперь , когда я снова открыл файл htaccess и увидел, что там 2 раза подряд записан редирект, то почему-то сразу подумал, что при удалении одного параметра, отвечающего за редирект, всё заработает как часы.

Сейчас записан вот такой код: 

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

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

 

Удаляем 2 строки и оставляем только:

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

 

Работа над ошибками или "redirect to www приди" 

   

Проверяем на главной странице и на любой другой методом добавления www и видим, что действия верные, но на ситуацию не влияют - редирект происходит только с главной страницы.(((

Но именно такие строчки кода рекомендуется добавить абсолютно на всех форумах и во всех статьях по запросу редиректа с www на без www или наоборот. Думаем-думаем-думаем и перемещаем эти 2 строки вверх кода файла - к правилу RewriteEngine On . В итоге, файл начинается с :

DirectoryIndex index.php

RewriteEngine On

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

Снова проверяем работоспособность редиректа на без www и вуаля!


 Все картинки кликабельны

© Автор статьи Коваленко Илья Александрович

Статья от 01.02.2019

Все права защищены

Перепечатка статьи возможна только со ссылкой на ресурс wolcha.ru

Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
  • Яндекс.Метрика