2016-12-15 40 views
1

是否可以在nginx中重写HTTPS通配符域或者我们是否应该为每个域创建多个结构/文件?用HTTPS重写通配符域

可以说我有follwing:

1. subdomain1.domain.com 
2. subdomain2.domain.com 

如果我没有HTTPS我用伟大的工程如下:

server { 
listen 443; 
server_name *.domain.com; 
charset utf-8; 
} 

没有如果我使用HTTPS,我会写一像下面这样的新块(使用letsencryt)

以下仅仅是一个测试域(只有一个域)

server { 
    server_name test.me; 
    rewrite^https://test.me$request_uri? permanent; 
} 

server { 
    listen 443; 
    server_name test.me; 
    charset utf-8; 
    ... 
} 

是否可以对多个域执行相同操作? server { server_name .domain.com; 重写^ https:// .domain.com $ request_uri?常驻; }

server { 
    listen 443; 
    server_name *.domain.com; 
    charset utf-8; 
    ... 
} 

我尝试了上面的配置,但它亘古不变的工作,它重定向我

https://%2A.domain.com.domain.com/ (just for test) 

是否有可能做这样的事情?或者我应该为每个子域有不同的块?

回答

1

使用nginx提供的变量之一从请求行中提取主机名。例如$host(详情请参阅this document):

server { 
    server_name .domain.com; 
    return 301 https://$host$request_uri; 
}