Nginxconfigurationredirect到$ URI

我有一个nginx的问题。 如果你打电话给“example.com”或者“example.example.com”,nginx会像我想要的那样将它redirect到“www.example.com”。 但是,如果我input如下所示的URI,则不会redirect:“example.com/doesnt-redirect”。 它不会添加“www”。 部分,因此,我从我的博客网站获得404。 我的configuration是:

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; } 

使用server_name .example.com; 代替。

从nginx的服务器名称文档:

可以使用“.example.org”forms的特殊通配符名称来匹配确切名称“example.org”和通配符名称“*。example.org”。

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