nginx:所有命名的子域名都是同名的子目录,没有信息回浏览器

我非常接近在前面的许多post中find答案,但没有什么是完美的。 所以请原谅再强调一下。 我认为这可能是一个相当普遍的问题,所以值得一个简洁的答案。

(1)我也(也)要使用我的networking服务器上的子目录,即使浏览器不断认为它是处理子域。 也就是说,我不希望浏览器从服务器接收301 [所以没有返回指令]。 (2)我不想指定一个域列表。 我希望它为所有人工作。

具体来说,我希望nginx将所有$ 1.example.com解释为example.com/$1/,而不指定$ 1可能的列表。 因此,浏览器中的http://funny.example.com/应始终检索与http://example.com/funny/相同的确切页面和http代码。 这也应该适用于所有的子文件。 http://funny.example.com/d1/p1.html应该产生与http://example/funny/d1/p1.html相同的结果。 这不是位置重新映射,而是重新映射。 但是,如果/var/www/example.com/是我的顶级目录,那么这可能会提供/var/www/example.com/funny/d1/p1.html。

从浏览器的angular度来看,他们碰巧看到了http://funny.example.com/和http://example.com/funny/的完全相同的页面。

解决scheme赞赏

根据ngx_http_core模块文档和服务器名称文档尝试以下内容

server { # sub domains config, match with regular expression *.example.com server_name ~^(?<sub_domain>.+)\.example\.com$; location / { root /var/www/examples.com/funny/$sub_domain; } } server { # catch all config server_name _; location / { root /var/www/examples.com; } }