Nginx

nginx:重寫 URL,但原始 URL 儲存在 access.log 中為 200

  • November 17, 2011

我正在建立一個連結跟踪系統,它(暫時)涉及在 URL 前面添加 /link/id/ (如http://server/data/id/publication/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 程式碼的情況下進行重寫?

Nginx 正在執行客戶端重定向,因為重定向目標在 URL 中有 http:// - 您可以執行伺服器端重定向(nginx 將重新讀取新 URL 並直接發送文件,程式碼為 200)rewrite data/id/(.*) /$1;

引用自:https://serverfault.com/questions/331877