NGINX 使用多个 .as 重写子域名 -

NGINX 使用多个 .as 重写子域名 -

在我的 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;
}

但如果通配符证书对于原始域名无效,这仍会导致信任错误。

相关内容