Nginx
nginx:重寫 URL,但原始 URL 儲存在 access.log 中為 200
我正在建立一個連結跟踪系統,它(暫時)涉及在 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;