301 редирект з www. та http: на https://(без www.)domain
В інтерфейсі керування VPS була відмічена галочка "Увімкнути автоматичний HTTPS редирект" (nginx.forcessl.conf* - це воно?) і з http на https переходило, а налаштування з www на без_www - такого налаштування не було. Можна було писати правила в .htaccess, але було цікаво, як налаштувати це на Nginx...
В /etc/nginx/conf.d/domains - мали лінки на Nginx-конфіги сайту (без та з ssl):
server { listen 185.111.111.45:80; server_name sitename.pp.ua www.sitename.pp.ua; error_log /var/log/apache2/domains/sitename.pp.ua.error.log error; include /home/cruad/conf/web/sitename.pp.ua/nginx.forcessl.conf*;... }
nginx.ssl.conf
server { listen 185.111.111.45:443 ssl; server_name sitename.pp.ua www.sitename.pp.ua; error_log /var/log/apache2/domains/sitename.pp.ua.error.log error; ssl_certificate /home/cruad/conf/web/sitename.pp.ua/ssl/sitename.pp.ua.pem; ssl_certificate_key /home/cruad/conf/web/sitename.pp.ua/ssl/sitename.pp.ua.key; ssl_stapling on; ssl_stapling_verify on;... include /home/cruad/conf/web/sitename.pp.ua/nginx.hsts.conf*;... include /home/cruad/conf/web/sitename.pp.ua/nginx.ssl.conf_*;}
nginx.conf підправляємо так, щоби запити на http://домен та http://www.домен булиь переправлені на https://домен:
server { listen 185.111.111.45:80; server_name sitename.pp.ua www.sitename.pp.ua;return301 https://sitename.pp.ua$request_uri;}
В nginx.ssl.conf додаємо ще одну секцію server в якій запити на https://www.домен будуть переправлені на https://домен. В другій секції server в директиві server_name залишаємо тільки sitename.pp.ua (www.sitename.pp.ua - видаляємо)
server { listen 185.107.237.45:443 ssl; server_name www.sitename.pp.ua;return301 https://sitename.pp.ua$request_uri;}server { listen 185.107.237.45:443 ssl; server_name sitename.pp.ua; error_log /var/log/apache2/domains/sitename.pp.ua.error.log error; ssl_certificate /home/cruad/conf/web/sitename.pp.ua/ssl/sitename.pp.ua.pem; ssl_certificate_key /home/cruad/conf/web/sitename.pp.ua/ssl/sitename.pp.ua.key; ssl_stapling on; ssl_stapling_verify on;... include /home/cruad/conf/web/sitename.pp.ua/nginx.hsts.conf*;... include /home/cruad/conf/web/sitename.pp.ua/nginx.ssl.conf_*;}