简体   繁体   English

nginx 将所有非 WWW 重定向到 HTTPS WWW

[英]nginx redirect all non-WWW to HTTPS WWW

Here is what happens:
example.com -> https://example.com
http://example.com -> https://example.com
www.example.com ->  -> https://www.example.com

This is what I want:
example.com -> https://www.example.com
http://example.com -> https://www.example.com
www.example.com ->  -> https://www.example.com

What am I missing in my Nginx config?我的 Nginx 配置中缺少什么? I cannot find out from all similarly asked questions.我无法从所有类似的问题中找出答案。 Some answers say to use an "if" statement, but Nginx doc says specifically not to do this because it will apply to ALL requests.一些答案说使用“if”语句,但 Nginx 文档明确表示不要这样做,因为它适用于所有请求。

server {
    listen 80;
    listen 443; # add this line
    server_name example.com;
    return 301 https://www.example.com$request_uri;
}
server {
        listen 80;
        root /var/www/html;
        index index.php;
        server_name example.com www.example.com;

        location / {
                try_files $uri $uri/ =404;
        }

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
        }

        location ~ /\.ht {
                deny all;
        }
}

Remove example.com in server_name of second block and add listen 443 to second block.删除第二个块的server_nameexample.com并将listen 443添加到第二个块。

Hope it helps.希望能帮助到你。

server {
    listen 80;
    listen 443; # add this line
    server_name example.com;
    return 301 https://www.example.com$request_uri;
}

server {
    listen 80;
    listen 443; # add this line too.
    root /var/www/html;
    index index.php;

    # Remove example.com
    server_name www.example.com;

    location / {
            try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
            include snippets/fastcgi-php.conf;
            fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
    }

    location ~ /\.ht {
            deny all;
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM