Nginx - Generi c перенаправить все www to без www - PullRequest
0 голосов
/ 01 апреля 2020

Можно ли сделать общие c HTTP -> HTTPS и WWW -> non- WWW redirect в Nginx, которые влияют на все домены. Или мне нужно настроить его для каждого домена?

Я сделал HTTP-> HTTPS следующим образом:

server {
    listen 80 default_server;
    server_name _;
    return 301 https://$host$request_uri;
}

1 Ответ

0 голосов
/ 01 апреля 2020

Для этого вы должны использовать два серверных блока:

server { # redirect http/https www.example.com to https://example.com
    listen 80;
    listen 443 ssl;
    server_name www.example.com;
    ssl_certificate     <path_to_ssl_cert_for_domain_www.example.com>;
    ssl_certificate_key <path_to_key_for_ssl_cert_above>;
    # other ssl parameters here if needed
    return 301 https://example.com$request_uri;
}

server { # redirect http://example.com to https://example.com
    listen 80;
    server_name example.com;
    return 301 https://example.com$request_uri;
}

server { # main site config
    listen 443 ssl;
    server_name example.com;
    # rest of your configuration here
    ...
}

Обычно платные сертификаты SSL уже включают как доменное имя с www prefix, так и без него. Если вы используете службу Lets Encrypt, вы можете самостоятельно создать сертификат для example.com и www.example.com.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...