Apache Module mod rewrite
概要
mod_rewriteモジュールは、PCRE正規表現パーサーに基づいたルールベースのリライティングエンジンを使用して、要求されたURLを即座に書き換えます。 デフォルトでは、mod_rewriteはURLをファイルシステムのパスにマップします。 ただし、あるURLを別のURLにリダイレクトする場合や、内部プロキシフェッチを呼び出す場合にも使用できます。
mod_rewriteは無制限のルールを使用してURLを操作するための柔軟で強力な方法を提供します。 各ルールには、サーバー変数、環境変数、HTTPヘッダー、またはタイムスタンプに基づいてURLを書き換えることができるように、ルール条件を無制限に追加できます。
mod_rewriteは、path-infoセクションを含む完全なURLパス上で動作します。 書き換えルールは、httpd.confまたは.htaccessで呼び出すことができます。 書き換えルールによって生成されるパスには、クエリ文字列を含めることができます。また、内部サブ処理、外部要求リダイレクト、または内部プロキシスループットにつながる可能性があります。
詳細、議論、および例は、詳細なmod_rewriteのマニュアルに記載されています。
ロギング
mod_rewriteは、trace1〜trace8ログ・レベルでのアクションの詳細なロギングを提供します。 ログレベルは、LogLevelディレクティブを使用してmod_rewrite専用に設定できます。レベルデバッグまで、アクションはログに記録されませんが、trace8は実質的にすべてのアクションが記録されることを意味します。
mod_rewriteに高いトレースログレベルを使用すると、Apache HTTP Serverの速度が大幅に低下します。 デバッグにのみtrace2以上のログレベルを使用してください。
例 LogLevel alert reqrite:trace3
RewriteLog
mod_rewriteの以前のバージョンに精通している人は、間違いなくRewriteLogとRewriteLogLevelディレクティブを探しているでしょう。 この機能は、上記の新しいモジュールごとのログ設定に完全に置き換えられました。
mod_rewrite固有のログメッセージだけを取得するには、ログファイルをgrepを通してパイプします。
tail -f error_log | fgrep 'rewrite:'