Experimente a opção Nonfatal
da AllowOverride
diretiva . Isso é suportado pelo Apache 2.4 e acima.
Você provavelmente quer usar isso:
AllowOverride Nonfatal=Unknown
Eu tenho um programa escrevendo e atualizando algumas RewriteRules em um arquivo .htaccess (a configuração principal está na seção vhosts). Isso funciona bem na maioria das vezes, mas às vezes o arquivo fica corrompido.
Quando isso acontece, o servidor responde com 500 Internal Server Error para cada solicitação porque o arquivo .htaccess está corrompido.
Existe uma opção à prova de falhas ou algo que eu possa configurar para dizer ao Apache que ele deve ignorar o arquivo .htaccess se estiver corrompido, mas respeitá-lo se estiver correto?
Ou, pelo menos, existe uma ferramenta que eu possa usar para verificar regularmente se o arquivo .htaccess é válido (por exemplo, pelo cron job) e excluí-lo se estiver corrompido?
Experimente a opção Nonfatal
da AllowOverride
diretiva . Isso é suportado pelo Apache 2.4 e acima.
Você provavelmente quer usar isso:
AllowOverride Nonfatal=Unknown
Não, não há mecanismo interno para lixar arquivos .htaccess. O que você deve fazer é incluir a verificação de sanidade em seu programa, afinal, é bem óbvio de onde vem a corrupção.
a única maneira de "fazer" é a seguinte:
# service httpd configtest && service httpd graceful && service httpd status
Syntax OK
httpd (pid 4580) is running...
#
... como você pode ver, ele faz isso do seu próprio jeito, onde ele verifica a configuração e, se estiver tudo bem, reiniciará graciosamente httpd
e mostrará seu status assumindo configtest
ok caso contrário, não irá com graceful
restart.