PHP - Manejo de errores personalizado. Redirigido 404 está siendo secuestrado por AVG Anti-Virus. ¿Cómo parar?

StackOverflow https://stackoverflow.com/questions/166482

Pregunta

Tengo un sitio web que utiliza el manejo de errores 404 personalizado en PHP / Apache para mostrar páginas específicas.
p.ej. http://metachat.org/recent

Tengo la sensación de que esta es una mala forma de hacer esto, pero es el código que heredé ...

Aunque la página se muestra correctamente en la mayoría de los navegadores, tengo una situación en la que AVG Anti-Virus está secuestrando la página y redirigiéndola a una página 404 fuera del sitio.

He intentado forzar un encabezado (Estado: 200 OK) usando el comando de encabezado en PHP, pero si hago un rizo -I de la página, obtengo lo siguiente ...

HTTP/1.1 404 Not Found
Date: Fri, 03 Oct 2008 11:43:01 GMT
Server: Apache/2.0.54 (Debian GNU/Linux) DAV/2 SVN/1.1.4 PHP/4.3.10-16 mod_ssl/2
.0.54 OpenSSL/0.9.7e
X-Powered-By: PHP/4.3.10-16
Status: 200 OK
Content-Type: text/html

Supongo que la primera línea son las trampas AVG de línea para su redireccionamiento forzado. Sin volver a escribir el software para usar Mod_rewrite (que no entiendo muy bien), ¿cómo puedo (en PHP) detener " HTTP: / 1/1 404 No encontrado " línea que se envía en los encabezados al mostrar esta página?

Gracias.

¿Fue útil?

Solución

No hay otra forma que usar la reescritura de URL (mod_rewrite) o crear las páginas que faltan. Lo que sucede es que el cliente solicita una página que no existe. Apache está configurado para servir una página especial con errores 404, pero aún así envía el código de estado 404, luego AVG atrapa eso.

Entonces, podrías hacer algo como:

RewriteEngine On
RewriteCond %{REQUEST_URI} !-f
RewriteCond %{REQUEST_URI} !-d
RewriteRule (.*) index.php?missing_content=$1

Eso reescribirá todo lo que no existe (y por lo tanto le daría un 404) a su index.php con la ruta URL en el parámetro de cadena de consulta missing_content

Otros consejos

Si lo que obtiene es un error Página no encontrada , no haga que se envíe el estado 200 OK. Por favor.

Es uno de los trucos " más " molestos " la gente lo hace por cualquier razón. Si la página que solicita el usuario no existe, dígale esto a él, así como a su navegador. Y para los motores de búsqueda, que de lo contrario rastrearán / almacenarán en caché su página de error personalizada, pensando que es la respuesta real.

Si alguien tiene un software instalado que muestra algo más en lugar de su 404, es su propio problema y no intente combatirlo haciendo que su servicio le mienta al navegador :)

Algunos navegadores no muestran el contenido de 404 páginas si ese contenido es bastante pequeño. Si hay un contenido de página más grande, lo muestran. Esta regla varía según el navegador. Intente agregar más contenido a su página 404 y vea si eso ayuda.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top