nginx:重写URL,但存储在access.log中的原始URL为200

我正在build立一个链接跟踪系统,这个系统(暂时)涉及在URL前添加/ link / id /(比如http:// server / data / id / publication / id / )。

rewrite data/id/(.*) http://server/$1; 

该请求被logging为:

 ip - - [17/Nov/2011:10:07:19 +0300] "GET /data/id/publication/id.html HTTP/1.1" 302 154 "-" "UA"` 

出于某种原因(保持与AWStats的兼容性),它需要有200个日志logging,而不是302个。 nginx允许获得301代码开箱即用的永久选项,但那也不合适)

我在这里有什么select? location { }rewrite组合是否可以完成这项工作?


更新:AWstats能够通过设置ValidHTTPCodes="200 304 301"来了解各种状态码,看到这个问题; 我的问题解决了,但问题仍然活跃 – 任何方式得到重写工作没有301/302代码?

Nginx正在做一个客户端redirect,因为redirect目标在URL中有http:// – 你可以做一个服务器端redirect(nginx将重新读取新的URL并直接发送文件,代码为200)只需要rewrite data/id/(.*) /$1;