我不是nginx的专家,但我通过这样做解决了我的问题:
server_name ~^(?<vhost>.*)$;
root /var/www/$vhost/public;
例如,如果用户输入网络浏览器http://sysadmin.mydomain.com,nginx将使用 /var/www/sysadmin.mydomain.com/public
的文档根目录这样做很好,但是这样做我用PHP $ _SERVER创建了另一个问题[&#39; SERVER_NAME&#39;];并且它将打印:〜^(?。*)$ 在我的代码中的其他地方引起问题。
我的解决方案适用于nginx,但它不是正确的解决方案。我怎样才能实现这一点并仍保持“可读性”。服务器名称?
答案 0 :(得分:2)
这就是我想要的技巧:
server_name mydomain.com ~^(?<vhost>.+)\.mydomain\.com$;
root /var/www/$vhost.mydomain.com/public;
$ _ SERVER ['SERVER_NAME']将回复:mydomain.com,这对我想要的很好。