Otimizar arquivo .htaccess

Otimizar arquivo .htaccess

Estou tentando otimizar meu arquivo .htaccess para evitar problemas de desempenho.

No meu arquivo .htaccess, tenho algo parecido com isto:

RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} bigbadbot [NC,OR]
RewriteCond %{HTTP_USER_AGENT} otherbot1 [NC,OR]
RewriteCond %{HTTP_USER_AGENT} otherbot2 [NC]
RewriteRule ^.* - [F,L]

A primeira regra de reescrita (bigbadbot) lida com cerca de 100 solicitações por segundo, enquanto as outras duas regras de reescrita abaixo dela lidam apenas com algumas solicitações por hora.

Minha pergunta é: como a primeira regra de reescrita (bigbadbot) lida com cerca de 99% do tráfego, seria melhor colocar essas regras em dois conjuntos de regras separados?

Por exemplo:

RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} bigbadbot [NC]
RewriteRule ^.* - [F,L]

RewriteCond %{HTTP_USER_AGENT} otherbot1 [NC,OR] RewriteCond %{HTTP_USER_AGENT} otherbot2 [NC] RewriteRule ^.* - [F,L]

O que seria melhor em termos de desempenho? Alguém já comparou isso?

Responder1

Basicamente não deveria haver diferença de desempenho, pois uma vez que um Cond corresponde a um bloco OR, o restante não é processado (não faria sentido). Tecnicamente, há um pouco de processamento feito por conta do bloco OR em primeiro lugar, então suponho que dividi-lo seria um pouco mais eficiente.

Eu concentraria meus esforços em outro lugar se você tivesse problemas de desempenho. Talvez traçando o perfil de qualquer aplicativo que você esteja servindo. Além disso, se estiver hospedado, o host pode simplesmente ter muitos sites no mesmo servidor.

informação relacionada