Community
1 1923
HostiServer
2018-06-22 14:12

Как настроить 301 Redirect с HTTP на HTTPS в Apache и Nginx?

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

В каких случаях стоит использовать 301 редирект?

  • При наличии нескольких одинаковых версий на разных поддоменах либо папках, например, http://domain.site.com или http://site.com или httpS://domain.site.com, для перенаправления посетителя на главную версию сайта.
  • В связи с ребрендингом (либо по другим причинам), когда вы хотите, чтобы пользователи не заметили разницы при переходе по прежнему URL.
  • При склеивании (объединении) двух сайтов для того, чтобы ссылки со всех страниц первого перенаправляли на новый.

Как настроить 301 Redirect с HTTP на HTTPS в Apache?

Для того, чтобы включить перенаправления средствами 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/

Как настроить 301 redirect с HTTP на HTTPS в Nginx?

Лучше всего сделать редирект с помощью нескольких 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;
}
...
...
}

Как правильно использовать Redirect 301?

Если у вас нет базовых умений администрирования веб-серверов, компания ХостиСервер не рекомендует менять настройки на работающих сайтах с трафиком. Лучше обратиться к профессионалам, которые смогут настроить все за считанные минуты. Если же вы хотите все сделать сами, мы советуем проводить такие эксперименты на тестовых доменах.

Содержание

управляемые vps от

$19 95 / мес

серверы на базе новых
процессоров intel xeon

$130 / мес

протестируй anycast cdn

1 Gbps
бесплатно
ПОЛУЧИТЕ $150 БОНУС

 

Этот сайт использует cookies. Продолжая навигацию по сайту, вы соглашаетесь с политикой конфиденциальности.