NGINX重写总是返回302

我完全被nginx重写的行为难倒了。 我有以下2个位置块 – 第一个简单地重写,以便第二个被调用。

location /alt/digest/rewrite { rewrite /alt/digest/rewrite http://$server_name/digest/wms break; } location /digest/wms { ... } 

但是,当我点击http:// server_name / alt / digest / rewrite时,我总是得到以下的回应:

 <html> <head><title>302 Found</title></head> <body bgcolor="white"> <center><h1>302 Found</h1></center> <hr><center>nginx/1.6.2</center> </body> </html> 

任何帮助,将不胜感激。

这个行为在重写文档中已经有很好的描述了:

如果替换字符串以“http://”或“https://”开头,则处理将停止,重定向将返回给客户端。

删除方案和主机部分,而不是改写为绝对路径。
还取代last break

持续
停止处理当前的ngx_http_rewrite_module指令集,并开始搜索匹配更改后的URI的新位置;

 rewrite /alt/digest/rewrite /digest/wms last;