Página de error de redireccionamiento de htaccess

Página de error de redireccionamiento de htaccess

Sé que esta es una pregunta común, pero no estoy seguro de por qué falla en mi host local (WAMP).

Me gustaría redirigir un error 500 a mi página de inicio de sesión. He probado lo siguiente:

  • ErrorDocument 500 http://localhost/mysite/login.php
  • ErrorDocument 500 C:/wamp64/www/mysite/login.php
  • ErrorDocument 500 mysite/login.php
  • ErrorDocument 500 login.php

Ninguno de estos no pudo redirigir a mi página de inicio de sesión.

Respuesta1

Estaba probando algo en PHP. Quería confirmar qué pasaría si deshabilitaba el informe de errores. Como era de esperar, recibí un error 500. Me gustaría configurar una redirección para esto con htaccess

No puede definir un ErrorDocument .htaccesspara manejar esto.

El propio PHP devolverá una respuesta 500 vacía cuando display_errorsesté desactivado y se produzca un error irrecuperable en su aplicación.

Para personalizar/manejar esta respuesta, necesita definir su propio controlador de errores PHP personalizado. https://www.php.net/manual/en/book.errorfunc.php

(Pero tenga en cuenta que si tiene una enfermedad fatalerror de análisisen su secuencia de comandos, es probable que aún no se llame a su controlador de errores, pero eso nunca debería suceder en un servidor de producción).

¿Podrías señalar alguna documentación al respecto?

Desafortunadamente, no tengo un punto de referencia central para esto. Realmente así es como funciona...

El Apache ErrorDocument solo se activa cuando el propio Apache activa la respuesta de error. (Aunque no se activará un documento de error 500 personalizado paratodoLas respuestas de Apache 500 y con su definición tardía .htaccessprobablemente no captarán mucho. Esto debe definirse en la configuración del servidor/host virtual).

Para que Apache ErrorDocument se active cuando PHP haya enviado una respuesta, Apache necesitaría interceptar y anular la respuesta; eso no sucede. De la misma manera que podría enviar un 404 desde su script PHP, Apache no lo intercepta para enviar la respuesta Apache 404.

información relacionada