Para resumir, tengo páginas dinámicas en un sitio web que muestran comentarios. Si no hay comentarios asociados a una ciudad/condado/área en particular/etc la consulta MySQL devuelve 0 filas que desencadena el siguiente código:incluir después de que el encabezado de PHP 404 muestre "Vaya, parece que este enlace está roto".
if (!$validRevQuery) {
header("HTTP/1.0 404 Not Found");
include("http://{$PDS['site']}/404.php?request=".urlencode($_SERVER['REQUEST_URI']));
exit;
}
En algunos servicios de alojamiento web esto desencadena una "URL del archivo real está desactivado" error . Lo cual está bien, pero en los que permiten el acceso a archivos URL, el archivo 404 se incluye y se muestra correctamente. He cambiado ligeramente el código para mostrar una ruta absoluta de este modo:
if (!$validRevQuery) {
header("HTTP/1.0 404 Not Found");
$_GET['request'] = urlencode($_SERVER['REQUEST_URI']);
include($_SERVER['DOCUMENT_ROOT']."/404.php");
exit;
}
Y ahora, me está dando el genérico "! Vaya Este enlace parece no estar funcionando." página de error (Tengo la barra de herramientas de Google, por lo que puede ser diferente según el navegador y los complementos). No tengo idea de por qué sucede esto, ¡así que cualquier ayuda es apreciada!
La fija- '$ _GET [ 'solicitud']' trabajo? No es algo que haya intentado hacer. ¿No puedes simplemente llamar a '$ _SERVER ['REQUEST_URI']' desde 404.php? Pensé que funcionaría, ya que solo un URI ha sido solicitado por el servidor web. Creo que las cosas de Google muestran ese mensaje genérico cuando el contenido proporcionado 404 es demasiado pequeño (no estoy seguro de la longitud exacta del personaje, Google lo;;)) – chigley
Establecer una variable 'GET' suena como una mala práctica de ninguna manera. –
establecer la variable GET fue solo una solución rápida, y sí lo he hecho antes y funciona. Trataré de encontrar una solución alternativa a eso. :) – Yev