Для того, чтобы изменить URL страницы отображаемого в результатах поиска, компания Google рекомендует использовать 301 Redirect. Это лучший способ убедится, что поисковые системы и пользователи будут направлены на правильную страницу, а также оградить себя от потери трафика из поисковых систем.
Для того, чтобы включить перенаправления средствами Apache необходимо включить mod_rewrite:
LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so
Чтобы изменения вступили в силу - перезагружаем веб сервер Apache:
apache2ctl restart
В .htaccess для перенаправления с HTTP на HTTPS добавляем:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.sitename\.com$ [NC]
RewriteRule ^(.*)$ http://sitename.com/$1 [R=301,L]
Либо:
RewriteEngine On
Redirect 301 / http://sitename.com/
Лучше всего сделать редирект с помощью нескольких vhost-ов.
vhost - это виртуальный хост для домена. Он начинается с секции server {
и может быть напрямую вписан в основной файл конфигурации nginx.conf либо через include как отдельный файл, например: include sites-enabled/*.conf;
Если не требуется конкретно переадресации на www или non-www, тогда можно сделать так:
server {
listen x.x.x.x:80;
server_name sitename.com;
server_name www.sitename.com;
return 301 https://$server_name$request_uri;
}
Если нужна переадресация именно на www либо non-www.
Переадресация на www.sitename.com:
server {
listen x.x.x.x:80;
server_name sitename.com;
server_name www.sitename.com;
return 301 https://www.sitename.com$request_uri;
}
Переадресация на non-www:
server {
listen x.x.x.x:80;
server_name sitename.com;
server_name www.sitename.com;
return 301 https://sitename.com$request_uri;
}
Если нужна переадресация с https non-www на https://www. :
server {
listen x.x.x.x:443 ssl http2;
server_name sitename.com;
ssl_certificate /path/to/cert.....;
ssl_certificate_key /path/to/key...;
return 301 https://www.sitename.com$request_uri;
}
server {
listen x.x.x.x:443 ssl http2;
server_name www.sitename.com;
ssl_certificate /path/to/cert.....;
ssl_certificate_key /path/to/key...;
root /path/to/docroot;
...
...
}
Для реализации редиректа в пределах одного vhost, когда нет возможности использовать несколько (к примеру, на сервере используется панель управления):
server {
listen x.x.x.x:80;
listen x.x.x.x:443 ssl http2;
server_name www.domain.com;
ssl_certificate /path/to/cert.....;
ssl_certificate_key /path/to/key...;
root /path/to/docroot;
if ($scheme = http) {
return 301 https://$server_name$request_uri;
}
...
...
}
Если у вас нет базовых умений администрирования веб-серверов, компания ХостиСервер не рекомендует менять настройки на работающих сайтах с трафиком. Лучше обратиться к профессионалам, которые смогут настроить все за считанные минуты. Если же вы хотите все сделать сами, мы советуем проводить такие эксперименты на тестовых доменах.