Eu sei que esta é uma pergunta comum, mas não sei por que isso está falhando no meu host local (WAMP).
Gostaria de redirecionar um erro 500 para minha página de login. Eu tentei o seguinte:
ErrorDocument 500 http://localhost/mysite/login.php
ErrorDocument 500 C:/wamp64/www/mysite/login.php
ErrorDocument 500 mysite/login.php
ErrorDocument 500 login.php
Cada um deles não conseguiu redirecionar para minha página de login.
Responder1
Eu estava testando algo em PHP. Queria confirmar o que aconteceria se eu desabilitasse o relatório de erros. Como esperado, recebi um erro 500. Gostaria de configurar um redirecionamento para isso com htaccess
Você não pode definir um ErrorDocument .htaccess
para lidar com isso.
O próprio PHP retornará uma resposta 500 vazia quando display_errors
estiver desligado e ocorrer um erro irrecuperável em seu aplicativo.
Para personalizar/tratar esta resposta, você precisa definir seu próprio manipulador de erros PHP personalizado. https://www.php.net/manual/en/book.errorfunc.php
(Mas observe que se você tiver um acidente fatalerro de análiseem seu script, seu manipulador de erros provavelmente ainda não será chamado - mas isso nunca deve acontecer em um servidor de produção.)
você poderia apontar alguma documentação sobre isso?
Não tenho um ponto de referência central para isso, infelizmente. É realmente assim que funciona...
O Apache ErrorDocument só é acionado quando o próprio Apache aciona a resposta de erro. (Embora um 500 ErrorDocument personalizado não seja acionado paratodosAs respostas do Apache 500 e com ele definido no final .htaccess
provavelmente não capturarão muita coisa. Isso deve ser definido na configuração do servidor/host virtual.)
Para que o Apache ErrorDocument seja acionado quando o PHP enviar uma resposta, o Apache precisaria interceptar e substituir a resposta - isso não acontece. Da mesma forma que você pode enviar um 404 do seu script PHP, o Apache não intercepta isso para enviar a resposta 404 do Apache.