在Nignx中无法将www重定向到非www

时间:2018-09-21 21:05:01

标签: nginx

阅读并实施了所有内容,但无法将我的域名www重定向到非www。

如果我在没有www的情况下浏览,我的网站就可以正常打开。

我的配置如下:

nginx version: nginx/1.10.3 (Ubuntu)

Distributor ID: Ubuntu
Description:    Ubuntu 16.04.5 LTS
Release:        16.04
Codename:       xenial

我当前的服务器块配置如下:

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

server {
        listen 80;
        listen [::]:80;

        server_name example.com;

        root /var/www/html/;
        index index.php index.html;
}

2 个答案:

答案 0 :(得分:1)

尝试添加此服务器块:

b

重新启动Nginx:

server {
    server_name example.com;
    return 301 $scheme://www.example.com$request_uri;
}

请注意,如果您使用的是sudo systemctl restart nginx ,则应将listen指令设置为端口HTTPS而不是443

使用此80命令来确保curl域重定向到non-www域(将突出显示的部分替换为您的实际域):

www

您应该获得curl -I http://example.com 永久移动的响应,其中显示了301重定向位置,如下所示:

样本输出:

www

答案 1 :(得分:0)

修改第一个区块

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

然后 sudo service nginx restart