在我的 NGINX 服务器上,我将用户名重写为子域名。但是,在我继承的服务器中,初始名称有一个“.”来分隔两个名称。
例如:http://foo.com/john.smith被重写为http://john.smith.foo.com。
由于通配符 SSL 证书,由于多个“。”导致显示图像或返回证书错误造成严重破坏。
如何将 john.smith.foo.com 重写为 john-smith.foo.com?以下是子域名重写的开头
server {
listen 443 ssl;
server_name ~^(.*)\.<%=rootdomain.replace(".", "\\.")%>$;
set $subdomain $1;
答案1
您可以构建一个服务器块来匹配带有嵌入的域名.
。
例如:
server {
listen 443 ssl;
server_name "~^(?<prefix>.+)\.(?<suffix>.+)\.example\.com$";
return 301 $prefix-$suffix.example.com$request_uri;
}
但如果通配符证书对于原始域名无效,这仍会导致信任错误。