Página de erro de redirecionamento htaccess

Página de erro de redirecionamento htaccess

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 .htaccesspara lidar com isso.

O próprio PHP retornará uma resposta 500 vazia quando display_errorsestiver 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 .htaccessprovavelmente 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.

informação relacionada