A recomendação do projeto Apache é:
Em geral, você só deve usar arquivos .htaccess quando não tiver acesso ao arquivo de configuração do servidor principal. ... um equívoco comum é que as diretivas de autenticação do usuário e mod_rewrite devem estar nos .htaccess
arquivos.
Portanto, defina AllowOverride None
e todas as suas outras diretivas no httpd.conf principal (e / ou nas subseções que você Include
)
Quando o Apache não está configurado com AllowOverride None
você, já ocorre uma penalidade (menor) no desempenho, independentemente de qualquer .htaccess
arquivo ser usado ou não .
Isso porque, para cada solicitação, o apache precisará verificar a presença de um .htaccess
arquivo em potencial em todos os (sub-) diretórios que levam ao recurso solicitado. Por exemplo, quando um arquivo é solicitado fora de um diretório / www / htdocs / example, o apache deve procurar os seguintes arquivos:
/.htaccess
/www/.htaccess
/www/htdocs/.htaccess
/www/htdocs/example/.htaccess
E assim, para cada acesso de arquivo fora desse diretório, existem 4 acessos adicionais ao sistema de arquivos, mesmo que nenhum desses arquivos esteja presente. (Se AllowOveride estiver definido para /)
A chamada do sistema usada para isso ( man 2 stat
) por si só não é tão cara e, geralmente, o cache do sistema de arquivos é usado em vez de pesquisar o disco real, limitando os requisitos reais de E / S, mas ainda assim pode ser acrescentado, como este artigo argumenta.
Quando um ou mais .htaccess
arquivos reais estão realmente presentes, o apache ainda precisa open
lê- lo (disparando outra operação de leitura de E / S e, geralmente, também uma operação de gravação de E / S para atualizar o atime
atributo do sistema de arquivos ) e analisá- lo antes que a lógica nele possa ser aplicada.
Diferentemente de quando suas diretivas estão em destaque httpd.conf
, que só precisa do apache para analisá-las uma vez, na inicialização, cada .htaccess
arquivo precisa ser interpretado novamente para cada solicitação.
O quão caro, além das operações de E / S, a análise dos arquivos .htaccess é depende de sua complexidade.
Isso exigirá benchmarking cuidadoso para determinar.