nginx 重定向到 www.domain

Jak*_*mas 8 linux rewrite nginx redirect

我想将站点始终重定向到 www.site.com。但是,我不确定如何让 WWW 始终显示在前面应该说有人在没有 www 的域中键入。

编辑:

server {
        listen  80;
        server_name  site.com;
        rewrite ^(.*) https://www.site.com$1 permanent;
}

server {
    listen       80;
    server_name  www.site.com;
    #rewrite ^(.*) https://www.site.com$1 permanent;
    root /home/site/public_html;

        listen       443 ssl;
Run Code Online (Sandbox Code Playgroud)

如果我输入 site.com,它会变成https://www.site.com= SUCCESS

如果我输入 site.com/index.php,它会变成http://www.site.com= NO SSL

想法?

ans*_*men 23

最好使用return而不是rewrite,因为它更快。

server {
    listen 80;
    server_name     example.com;
    return          301 http://www.example.com$request_uri;
}

server {
    listen 80;
    server_name     www.example.com;
    [...]
}
Run Code Online (Sandbox Code Playgroud)

这样,我们还向客户端发送了正确的状态代码,以便他在下一个请求中询问正确的域。


cee*_*yoz 3

你正在以艰难的方式做到这一点。这是简单的方法。

server {
    listen 80;
    server_name  example.com;
    rewrite ^(.*) http://www.example.com$1 permanent;
}

server {
    listen 80;
    server_name  www.example.com;
    #The rest of your configuration goes here#
}
Run Code Online (Sandbox Code Playgroud)