2016-11-16 128 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