2016-10-28 59 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