2016-11-16 115 views
0

任何人都可以指出我,請正確設置nginx。 我有3個域名和1個子域名,我只有一個域名有問題。nginx設置WordPress的多個域名和子域名

所有域具有主服務器塊相同

domain1.com

server { 
    # Server host 
    server_name domain1.com *.domain1.com; # Other domains are set to 1.com, 2.com ... 


    # Server ports 
    listen 80; 
    listen [::]:80 ipv6only=on; 
    listen 443 ssl http2; 
    listen [::]:443 ipv6only=on ssl http2; 

現在有趣的事情是這樣的:

$ curl -I http://www.domain2.com, 
HTTP/1.1 200 OK 
Link: <http://www.domain3.com/>; rel=shortlink 


$ curl -I https://domain2.com 
HTTP/1.1 302 Found 
Location: https://www.domain1.com 

所以非www HTTPS重定向到domain1.com,和www http顯示domain3.com。

我已嘗試添加:

server { 
    listen 80; 
    listen [::]:80; 

    server_name www.domain2.com, domain2.com; 

    return 301 https://www.domain2.com$request_uri; 
} 

server { 
    listen 443 ssl http2; 
    listen [::]:443 ssl http2; 

    server_name domain2.com; 

    return 301 https://www.domain2.com$request_uri; 
} 

但是,這並不有助於。 我看到,可能有些設置是多餘的,但不知道爲什麼這不起作用。 我想實現的是:

domain2.com,www.domain2.com>https://www.domain2.com

我也有一個子域在這裏,但一個運作良好:dev.domain2.com

回答

1

我認爲它可能與你用逗號分隔服務器名稱而不是空間。嘗試刪除這一行中的逗號,看看你是否有幸運?

server_name www.domain2.com, domain2.com; 
+0

Spot on man。試圖刪除逗號,但不幸的是它並沒有幫助。 – Bobz

+0

+1。看起來像添加兩個www.domain2.com domain2.com沒有逗號固定一個問題,但另一個返回302保持。 – Bobz