我遇到了 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
可以删除,因为通配符形式无论如何都会匹配它。