2016-12-15 64 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; 
}