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 .htaccess
para manejar esto.
El propio PHP devolverá una respuesta 500 vacía cuando display_errors
esté 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 .htaccess
probablemente 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.