基本上我有一个catchall服务器块说*.example.com.我想要两个somename.com并且somename.example.com工作(即为了somename.com/whatever和somename.example.com/whatever经历相同的服务器块并导致相同的结果)所以没有重定向.可能有几个网址需要与不同的子域匹配,所以也许map可能是最好的方法?我不确定,会对此事的任何指导表示感谢!
编辑:只有一个根处理所有东西(并且应用程序使用子域作为重要的输入),但它需要一个子域,这是重写域的原因,因此有一个子域非常重要.
地图是个好主意,但您可能不需要它。如果您采用约定,其中somename是工作目录的名称,则可以使用命名捕获作为变量根。以下正则表达式server_name指令应同时匹配abc.example.com和abc.com:
server {
server_name ~^(?<somename>[^\.]+)(\.example)?\.com$;
root /var/www/$somename;
}
Run Code Online (Sandbox Code Playgroud)