Access_logに次のようなメッセージがたくさんあるApache2.2.4サーバーがあります。
::1 - - [15/May/2010:19:55:01 +0200] "OPTIONS * HTTP/1.0" 400 543
::1 - - [15/May/2010:20:22:17 +0200] "OPTIONS * HTTP/1.0" 400 543
::1 - - [15/May/2010:20:24:58 +0200] "OPTIONS * HTTP/1.0" 400 543
::1 - - [15/May/2010:20:25:55 +0200] "OPTIONS * HTTP/1.0" 400 543
::1 - - [15/May/2010:20:27:14 +0200] "OPTIONS * HTTP/1.0" 400 543
このページで説明されている「内部ダミー接続」は次のとおりです。
http://wiki.Apache.org/httpd/InternalDummyConnection
このページも私の主な問題にぶつかります。「2.2.6以前では、特定の構成では、これらのリクエストが重い動的Webページにぶつかり、サーバーに不要な負荷がかかる可能性があります。その特定のユーザーエージェントまたはIPアドレスでアクセスされたときにmod_rewriteを使用してリダイレクトで応答することにより、これを回避します。 "
サーバーの署名を最小化したため、明らかにUserAgentは使用できませんが、IPアドレスは使用できます。ただし、RewriteCondとRewriteRuleがIPv6アドレス:: 1を探す必要があるかどうかはわかりません。
これが実行されているWebサイトはCodeIgniterを使用しているため、次の.htaccessが既に配置されているので、追加する必要があります。
RewriteEngine on
RewriteCond %{REQUEST_URI} ^/system.*
RewriteRule ^(.*)$ /index.php?/$1 [G]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?/$1 [L]
この.htaccessルールを作成する方法はありますか?
解決済み:別のルールを追加すると、OPTIONSが現在のルールに該当し、Apacheがデフォルトで実行するのと同じ方法で処理されます。
RewriteEngine on
RewriteCond %{REQUEST_URI} ^/system.*
RewriteRule ^(.*)$ /index.php?/$1 [G]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REMOTE_Host} !^::1$
RewriteRule ^(.*)$ /index.php?/$1 [L]
IPv6のローカルホスト経由でWebサイトにアクセスすることはないので、これはうまく機能します。
RewriteCond %{REMOTE_Host} ^::1$
RewriteRule ^OPTIONS http://www.google.com/ [L]
それが私の最善の推測です。私はRewriteCond
を確信していますが、RewriteRule
については完全ではありません。
REMOTE_Host
が::1
である場合に一致し、OPTIONS
で始まるURLのリクエストをwww.google.comに書き換えます。