2016-10-28 91 views
0

我有nginx安装,它是作为一个站点的代理工作。请参考下面Nginx - 带www的URL不重定向

proxy_cache_path /tmp/cache levels=1:2 keys_zone=STATIC:10m inactive=10m max_size=1g; 
 
server { 
 
     listen 80; 
 
     server_name domain.com www.domain.com; 
 
     client_max_body_size 20M; 
 
     location/{ 
 
       proxy_set_header Host $host; 
 
       proxy_set_header X-Real-IP $remote_addr; 
 
       proxy_pass http://domainserver.com:8000; 
 
       proxy_connect_timeout  600; 
 
       proxy_send_timeout   600; 
 
       proxy_read_timeout   600; 
 
       send_timeout    600; 
 
     } 
 
     location = /xmlrpc.php { 
 
       deny all; 
 
       access_log off; 
 
       log_not_found off; 
 
     } 
 
     location = /home-garden { 
 
       rewrite 301 http://domain.com/category/forsale/home-and-garden/; 
 
     } 
 

 
}

我想要做什么配置是

URL http://www.domain.com/home-garden应该重定向到http://domain.com/new-home-garden

此外, http://domain.com/home-garden应该重定向到http://domain.com/new-home-garden

让我知道如果我提供了足够的信息,如果有人可以帮我

+0

什么是'重写HTTP 301://domain.com/category/forsale/home-and-garden/;'?你的意思是“回报”? –

回答

1

你需要添加一个新的服务器块来捕获www.domain.com,然后重定向到domain.com。这是下面的第一个服务器块。请注意,这会将全部请求从www.domain.com重定向到domain.com。如果这不是这个意图,它可以被定制。

然后,您需要从第二个服务器块中的server_name指令中删除www.domain.com

对于重定向,请定义一个新的位置块,如下所示。

proxy_cache_path /tmp/cache levels=1:2 keys_zone=STATIC:10m inactive=10m max_size=1g; 
 

 
server { 
 
     listen 80; 
 
     server_name www.domain.com; 
 

 
     return 301 http://domain.com$request_uri; 
 
} 
 

 
server { 
 
     listen 80; 
 
     server_name domain.com; 
 
     client_max_body_size 20M; 
 
     location/{ 
 
       proxy_set_header Host $host; 
 
       proxy_set_header X-Real-IP $remote_addr; 
 
       proxy_pass http://domainserver.com:8000; 
 
       proxy_connect_timeout  600; 
 
       proxy_send_timeout   600; 
 
       proxy_read_timeout   600; 
 
       send_timeout    600; 
 
     } 
 
     location = /xmlrpc.php { 
 
       deny all; 
 
       access_log off; 
 
       log_not_found off; 
 
     } 
 
     location ^~ /home-garden { 
 
       rewrite 301 http://domain.com/new-home-garden/; 
 
     } 
 

 
}

+0

这工作.....但位置^〜/家庭花园{ 重写301 http://domain.com/new-home-garden/; }没有工作后,它从www.domain.com重定向,所以我使用代理截至目前......但我不知道它是否正确的方式 – Saurabh

+0

我看到...虽然代理与重定向不同。当你说重定向在从www.domain.com重定向后不起作用时,这是否意味着'domain.com/home-garden'确实重定向正确? –

+0

我的意思是它从www.domain.com重定向到domain.com ...但没有去http://domain.com/new-home-garden – Saurabh