1

Apacheのログエントリの実際の形式で条件付き書式を呼び出すことは可能ですか?

たとえば、アクセス ログの現在の形式は次のようになります。

0.0.0.0 - - %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %T %V %A

最後に「%A」がある理由は、ipv6 または ipv4 アドレスを介してサイトにアクセスしたかどうかを確認するためです (ユーザーの IP をログに記録していません)。私の質問は、使用されているインターフェイスの実際の ip を記述する代わりに、単に「v4」または「v6」と記述することは可能ですか?

これは後処理として実行できることは知っていますが、いわば「オンザフライ」で実行できるかどうか疑問に思っています。

現在Apache/2.2.16を使用中

4

1 に答える 1

1

私の質問は、使用されているインターフェイスの実際の ip を記述する代わりに、単に「v4」または「v6」と記述することは可能ですか?

まあ、そこには洗練された「if-else」構造はありません。

ただし、事前に環境変数を設定してから、その内容を 経由でログに記録することもできます%{VARNAME}e

SetEnvIf Server_Addr 127\.0\.0\.1 IP_VERSION=v4
SetEnvIf Server_Addr /*whatevertheipv6addresslookslikeasregexp*/ IP_VERSION=v6

そして、ログ形式の仕様%{IP_VERSION}eで、その変数の内容をログに記録します。

(テストされていません。ドキュメントから推測しただけです。保証はありません。)

于 2013-03-17T16:31:51.203 に答える