Foros del Web » Programando para Internet » PHP »

PHP - htaccess - 404

Estas en el tema de PHP - htaccess - 404 en el foro de PHP en Foros del Web. Hola a todos, tengo el siguiente problema. Programo mediante PHP y MySQL una pagina que segun un valor por query string (GET), busca en la ...
  #1 (permalink)  
Antiguo 15/10/2010, 08:55
 
Fecha de Ingreso: mayo-2010
Mensajes: 38
Antigüedad: 13 años, 11 meses
Puntos: 0
PHP - htaccess - 404

Hola a todos,

tengo el siguiente problema.

Programo mediante PHP y MySQL una pagina que segun un valor por query string (GET), busca en la base de datos y me muestra los valores preformateados en pantalla. Esta pagina es "ver_video.php" y se le pasa los valores asi "ver_video.php?id=XX" (donde XX es un numero). Hasta aqui todo normal...

Ahora bien, es posible que ese numero no exista en la BBDD, por tanto mejor que hacer una redireccion a una pagina de error (los buscadores entenderian que el recurso existe pero ha sido movido), quisiera mostrar un error 404 (pagina no encontrada) y que saliera un mensaje personalizado de error.

He estado investigando directivas de htaccess y he dado con las siguientes:
- ErrorDocument. Ejemplo: ErrorDocument 404 /paginaError.html.
Este caso no me sirve porque la pagina que solicita el usuario existe y no existe, es decir, existe pero internamente quiero que no exista si no cumple el requisito obtenido por query string. Asi, si por ejemplo el usuario accede mediante "ver_video.php" o "ver_video.php?id=YY", siendo YY un valor inexistente en la BBDD, me deberia de salir la pagina de error 404.
- Redirect. Ejemplo: Redirect 404 /paginaError.html. Quiza sea esta la directiva que haga lo que necesito, pero no he conseguido hacerla funcionar y el servidor me devuelve un error cuando la incluyo en el htaccess.

Siento haberos metido esta parrafada, pero en definitiva lo que quiero es poder enviar por cabecera un header("HTTP/1.0 404 Not Found") si la pagina no cumple con ciertos requisitos obtenidos por query string y que automaticamente el servidor muestre una pagina de error personalizada.

Un saludo y gracias de antemano!!
  #2 (permalink)  
Antiguo 15/10/2010, 08:56
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: PHP - htaccess - 404

Pues tal cual lo pusiste, usa un header() y luego muestra tu pagina de error.

Saludos.
  #3 (permalink)  
Antiguo 15/10/2010, 09:02
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 3 meses
Puntos: 9
Respuesta: PHP - htaccess - 404

pues usa el mysql_num_rows() en tu parámetro y si te devuelve "0" en ese caso usa el header("Location: 404.html")
__________________
Quitenme la vida pero no la bebida.
  #4 (permalink)  
Antiguo 15/10/2010, 09:15
 
Fecha de Ingreso: mayo-2010
Mensajes: 38
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: PHP - htaccess - 404

Cita:
Iniciado por GatorV Ver Mensaje
Pues tal cual lo pusiste, usa un header() y luego muestra tu pagina de error.
En ese caso no tengo problemas, ya que como bien dices puedo generar la pagina de error en el mismo "ver_video.php". Mi intencion es si enviado la cabecera "HTTP/1.0 404 Not Found" el servidor internamente es capaz de redireccionar a una pagina de error con htaccess.


Cita:
Iniciado por cesarpunk Ver Mensaje
pues usa el mysql_num_rows() en tu parámetro y si te devuelve "0" en ese caso usa el header("Location: 404.html")
En cuanto a la comprobacion del dato en la BBDD no tengo problemas. Y si utilizo una redireccion del tipo que comentas, primero se realiza una redireccion a la pagina de error (codigo 302: Movido temporalmente) para depues obtener un 404 con la pagina de error. No se si es eso lo que estoy buscando... me refiero de cara a los buscadores.

Gracias a ambos!!
  #5 (permalink)  
Antiguo 16/10/2010, 05:17
 
Fecha de Ingreso: mayo-2010
Mensajes: 38
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: PHP - htaccess - 404

Creo que voy a seguir el consejo de "GatorV" y lo expuesto en este hilo:
http://www.forosdelweb.com/f91/devolver-cabecera-404-desde-php-que-muestre-pagina-error-personalizada-661348/

Supongo es la solucion mas elegante.

Etiquetas: htaccess
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:19.