Apache: Como redirecionar a solicitação OPTIONS com .htaccess?

3

Eu tenho o servidor Apache 2.2.4 com muitas mensagens como esta no access_log:

::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

Estas são as "conexões simuladas internas", conforme explicado nesta página:

link

A página também atinge o meu problema principal: "Na versão 2.2.6 e anterior, em certas configurações, essas solicitações podem atingir uma página dinâmica da Web e causar uma carga desnecessária no servidor. Você pode evitar isso usando o mod_rewrite para responder com um redirecionamento quando acessado com esse User-Agent ou endereço IP específico. "

Bem, obviamente não posso usar o UserAgent porque minimizei a assinatura do servidor, mas pude usar o endereço IP. No entanto, eu não tenho idéia do que o RewriteCond e o RewriteRule devem procurar pelo endereço IPv6 :: 1.

O site onde isso é executado está usando o CodeIgniter, então já existe o seguinte .htaccess, eu só preciso adicionar a ele:

RewriteEngine on
RewriteCond %{REQUEST_URI} ^/system.*
RewriteRule ^(.*)$ /index.php?/$1 [G]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?/$1 [L]

Alguma ideia de como escrever esta regra .htaccess?

Resolvido: Adicionar outra regra faz com que OPTIONS caia nas regras atuais e seja tratado da mesma maneira que o Apache está fazendo por padrão.

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]

Eu nunca acesso o site via localhost no IPv6, então isso funciona muito bem.

    
por Milan Babuškov 16.05.2010 / 01:50

1 resposta

2
RewriteCond %{REMOTE_HOST} ^::1$
RewriteRule  ^OPTIONS  http://www.google.com/  [L]

esse é o meu melhor palpite, tenho certeza do RewriteCond , mas não exatamente com o RewriteRule

ele corresponderá em REMOTE_HOST sendo ::1 e, em seguida, reescreverá uma solicitação para qualquer URL que comece com OPTIONS para www.google.com

    
por 16.05.2010 / 02:08