我正在设置一个链接跟踪系统,它(暂时)涉及在 URL 前面添加 /link/id/(例如http://服务器/数据/id/出版物/id/)。
rewrite data/id/(.*) http://server/$1;
该请求记录为:
ip - - [17/Nov/2011:10:07:19 +0300] "GET /data/id/publication/id.html HTTP/1.1" 302 154 "-" "UA"`
由于某种原因(保持与 AWStats 的兼容性),希望记录 200 而不是 302。(nginx 允许使用永久选项获取 301 代码,但这也不合适)
location { }
我有什么选择?和的组合能rewrite
起到作用吗?
更新:AWstats 可以通过设置来理解各种状态代码ValidHTTPCodes="200 304 301"
,请参阅这问题;我的问题解决了,但是问题仍然存在 - 有没有办法让重写在没有 301/302 代码的情况下工作?
答案1
Nginx 正在执行客户端重定向,因为重定向目标的 URL 中包含 http:// - 你可以执行服务器端重定向(nginx 将重新读取新的 URL 并直接发送文件,代码为 200),只需rewrite data/id/(.*) /$1;