web-dev-qa-db-ja.com

apacheへのHTMLリクエストのヘッダーを表示する

Apacheへの着信リクエストの詳細バージョンを表示する良い方法はありますか?少なくとも、特定のヘッダーの存在を確認し、その値を確認したいと思います。リクエストはブラウザから送信されないため、送信されるのを確認するのは難しいです。カスタムHTTPヘッダーが実際にクライアントによって追加されているかどうかわからないため、rewritecondディレクティブのデバッグは困難です。

3
AlexMA

カスタムを作成できます ヘッダーを含むLogFormat

%{Foobar} i:サーバーに送信されたリクエストのFoobar:ヘッダー行の内容。他のモジュール(mod_headersなど)によって行われた変更はこれに影響します。ほとんどのモジュールがリクエストヘッダーを変更する前のリクエストヘッダーに関心がある場合は、mod_setenvifを使用してヘッダーを内部環境変数にコピーし、上記の%{VARNAME} eを使用してその値をログに記録します。

次に、これを再利用します LogFormat AccessLogディレクティブで

LogFormat "%v %h %l %u %t \"%r\" %>s %b %{MySpecialHeader}i " my_special_format
CustomLog logs/access_log_with_details my_special_format

または、1行だけでも:

CustomLog logs/access_log_with_details "%v %h %l %u %t \"%r\" %>s %b %{MySpecialHeader}i"

[〜#〜]更新[〜#〜]

SetEnvIfに関する注意:

この部分は、内部書き換えの開始時にヘッダーの値を格納するように作成されており、プロセスの最後に%{FOO}i構文を使用してヘッダーを抽出する代わりに、%{MyEnvVar}e最初にバックアップされた値をログに記録するには、これは環境変数をログに記録するための構文です。

したがって、次のようなもので終わります。

SetEnvIf MySpecialHeader "(.*)" BACKUPHEADER=$1
(... stuff and things ...)
CustomLog logs/access_log_with_details "init: %{BACKUPHEADER}e final: %{MySpecialHeader}i "
3
regilero

Mod_securityを使用して実行することもできます。

http://static.askapache.com/httpd/mod_security/doc/modsecurity-manual.html#N107EE

LogFormat "%h %l %u %t \"%r\" %>s %{mod_security-body}n

1
whitepaws