O Apache pode ser configurado para ignorar arquivos .htaccess corrompidos, mas respeitá-los se estiverem corretos?

1

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?

    
por Dehalion 11.03.2014 / 15:09

3 respostas

1

Experimente a opção Nonfatal da AllowOverride diretiva . Isso é suportado pelo Apache 2.4 e acima.

Você provavelmente quer usar isso:

AllowOverride Nonfatal=Unknown
    
por 09.05.2017 / 11:04
0

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.

    
por 11.03.2014 / 15:46
0

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.

    
por 11.03.2014 / 17:00