https://www.lexium.ru/2017/04/nginix-301-jj-redirekt-s-http-na-https-i-s-www-na-bez-www/

NGINX: 301-й редирект с http на https и с www на без www

На днях подключал один сайт к https (SSL). Проблема в том, что на сервере не было никакой панели управления. Такое случается иногда.


Сам сертификат подключился подозритально просто. Залил ключ и сертификат в папку на сервере, прописал пути в конфиге nginx’а в директиву server (от нужного домена) и всё.

ssl on;
ssl_certificate /home/bitrix/ssl/klassikashop.ru/klassikashop.ru.crt;
ssl_certificate_key /home/bitrix/ssl/klassikashop.ru/klassikashop.ru.key;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;

 

Но после этого сайт становится доступен и по http, и по https, и по домену www.домен.ru, и по домену домен.ru

Не знаю почему (видимо настройки не так сошлись), но .htaccess там игнорируется полностью. Как сделать редирект при таких вводных?

А вот как. Достаточно прописать в директиву server (от нужного домена) вот этот код:

#301-й редирект HTTPS
if ($scheme = http) {
return 301 https://$server_name$request_uri;
}
if ($host ~* www\.(.*)) {
set $host_without_www $1;
rewrite ^(.*)$ https://$host_without_www$1 permanent;
}

 

Вроде все просто в итоге, но времени угрохал кучу.

Напишите комментарий