NGINX 通配符在同一服务器块中重写
NGINX wildcard rewrite in same server block
我找不到我正在尝试的特定重写规则的示例。
例如,我希望仅针对输入的子域设置重写规则。
https://sub.example.com/ -> https://example.com/directory1/directory2/sub
从我一直在尝试的情况来看,这看起来是我得到的最接近的代码。
server_name example.com;
if ($host = *.example.com)
return 301 https://example.com/directory1/directory2/;
}
查看文档:
这是一个解决方案:
server_name .example.com;
if ($host ~ ^(?<sub>.+)\.example\.com$) {
return 301 http://example.com/directory1/directory2/$sub;
}
这将是另一个解决方案:
server_name ~^(?<sub>.+)\.example\.com$;
return 301 http://example.com/directory1/directory2/$sub;
哪种解决方案更好?很难说 — 这取决于您收到的流量模式,以及在同一侦听句柄上配置的其他服务器。
我找不到我正在尝试的特定重写规则的示例。
例如,我希望仅针对输入的子域设置重写规则。
https://sub.example.com/ -> https://example.com/directory1/directory2/sub
从我一直在尝试的情况来看,这看起来是我得到的最接近的代码。
server_name example.com;
if ($host = *.example.com)
return 301 https://example.com/directory1/directory2/;
}
查看文档:
这是一个解决方案:
server_name .example.com;
if ($host ~ ^(?<sub>.+)\.example\.com$) {
return 301 http://example.com/directory1/directory2/$sub;
}
这将是另一个解决方案:
server_name ~^(?<sub>.+)\.example\.com$;
return 301 http://example.com/directory1/directory2/$sub;
哪种解决方案更好?很难说 — 这取决于您收到的流量模式,以及在同一侦听句柄上配置的其他服务器。