Nginx 配置重定向到 $URI

Nginx 配置重定向到 $URI

我遇到了 nginx 问题。如果您调用“example.com”或“example.example.com”,nginx 会像我希望的那样将其重定向到“www.example.com”,没有任何问题。但是,如果我输入这样的 URI:“example.com/doesnt-redirect”,它不会重定向。它不会添加“www.”部分,因此,我从我的博客网站获得 404。我的配置是:

server {

    listen 80;
    server_name www.example.com *.example.com;

    if ($http_host != "www.example.com") {
        return  301 http://www.example.com$request_uri;
    }

    root /home/ghost/;
    index index.html;

}

答案1

改用server_name .example.com;

来自 nginx 的服务器名称文档:

形式为“.example.org”的特殊通配符名称可用于匹配精确名称“example.org”和通配符名称“*.example.org”。

请注意,www.example.com可以删除,因为通配符形式无论如何都会匹配它。

相关内容