2015-12-21 106 views
1

我有一個域設置了通配符子域名,用於白標籤訪問。我試圖防止人們在http://www.subdomain.domain.com/中輸入內容,但努力尋找解決方案。 (我已經在行動,始終使用安全協議的改寫。)Nginx通配符子域重定向到非www網站

我目前的設置是這樣的(當然,相關部分):

server { 
    listen 80; 
    server_name domain.com *.domain.com; 
    rewrite^https://$http_host$request_uri? permanent; 
} 

server { 
    listen 443; 
    ssl on; 
    ssl_certificate /path/to/certificate.crt; 
    ssl_certificate_key /path/to/certificate.key; 
    server_name domain.com *.domain.com; 

    ... 
} 

我所實現的是http://domain.comhttp://sub.domain.com都重定向到https協議,換句話說分別是https://domain.comhttps://sub.domain.com。我仍然想要實現的是,http://www.domain.comhttps://www.domain.com重定向到https://domain.com,並且http://www.sub.domain.comhttps://www.sub.domain.com也重定向到https://sub.domain.com

請問誰能幫忙?

(PS:我甚至想申請一個全球性的nginx的安裝程序刪除URL爲同一個服務器一次,如果這是一個選項上運行的所有域的www部分。)

回答

1

要刪除的領先www.從所請求的服務器名稱序列,在附近放置你的SSL服務器容器的頂部(在任何其他URI處理指令)這個if塊:

if ($http_host ~* ^www\.(.*)$) 
{ 
    return 301 $scheme://$1$request_uri; 
} 

一般ifshould be used very carefully,但在這種情況下完美的罰款。

相關問題