Чтобы поисковики не сбивались с толку, сканируя ваш сайт и так и эдак - типа www.domen.ru и domen.ru, лучше создать однозначный доступ - либо по www либо без...
Как я считаю, вариант www устарел с тех пор, как серверы обрели необходимую мощь, чтобы обрабатывать все протоколы одной железякой, ибо раньше разделяли нагрузку по кучке мало-мощных серверов, один ftp, другой www, третий hz.... у всех был один домен, просто распределение было по их назначению.
Адрес без www - занимает меньше места на визитной карточке, на баннере, проще произносится в конце концов, да и поисковики будут думать что у вас один сайт и нормально будут индексировать, а не думать, что их два и выдавать ваш url как попало...
Для начала затеи на нашем web-сервере должен быть установлен компонент mod_rewrite, затем нужно подкорректировать файл .htaccess в корне сайта:
- Вариант номер раз - добавить в конец файла данные строки:
RewriteEngine On RewriteCond %{HTTP_HOST} ^www.domen.ru RewriteRule (.*) http://domen.ru/$1 [R=301,L]
Данный вариант короток, но есть недостаток, если у вас куча сайтов, то придется для каждого сайта прописывать URL-адрес.
- Вариант номер два - добавить в конец файла данные строки:
RewriteEngine On RewriteBase / # В переменную окружения %{ENV:PROTOCOL} помещаем протокол RewriteRule ^(.*)$ - [E=PROTOCOL:http] RewriteCond %{HTTPS} ^on$ [NC] RewriteRule ^(.*)$ - [E=PROTOCOL:https] # Если нужно убираем www RewriteCond %{SERVER_PORT} ^80$ RewriteCond %{HTTP_HOST} ^www.(.*) [NC] RewriteRule ^(.*)$ %{ENV:PROTOCOL}://%1%{REQUEST_URI} [R=301,L] RewriteCond %{HTTP_HOST} ^www.(.*) [NC] RewriteRule ^(.*)$ %{ENV:PROTOCOL}://%1:%{SERVER_PORT}%{REQUEST_URI} [R=301,L]
Этот вариант более универсален, так как не придется прописывать каждый раз домены, да и не вышибает сайт, если не установлен mod_rewrite, работает так же с https.
Дополнение:
Если вы не используете Apache2, а только чистый Nginx, то у вас не будет работать файл .htaccess, по этому надо в конфиг сайта в секцию server следущий код:
if ($http_host ~* "^www\.(.*)"){ set $http_host_1 $1; rewrite ^(.*)$ https://$http_host_1:$request_uri redirect; }
Обратите внимание, что тут идет протокол https, соответственно измените на http
Рейтинг: 34
Обновлено: 21.11.2024