リンク追跡システムを設定しています。これには、(一時的に)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との互換性を維持するため)、302ではなく200をログに記録する必要があります。(nginxでは永続的なオプションを使用して301コードをすぐに取得できますが、それも不適切です)
ここでの私のオプションは何ですか? location { }
とrewrite
の組み合わせでうまくいきますか?
更新:AWstatsは、ValidHTTPCodes="200 304 301"
を設定することで、さまざまなステータスコードを理解できます。 this の質問を参照してください。私の問題は解決しましたが、質問はまだアクティブです-301/302コードなしで書き換えを機能させる方法はありますか?
リダイレクトターゲットのURLにhttp://が含まれているため、Nginxはクライアント側のリダイレクトを実行しています-rewrite data/id/(.*) /$1;