Foros del Web » Administración de Sistemas » Apache »

Redireccion 404 con la misma url

Estas en el tema de Redireccion 404 con la misma url en el foro de Apache en Foros del Web. He visto en muchas páginas que cuando escribes una url que no existe te aparece el típico mensaje de error de página no encontrada pero ...
  #1 (permalink)  
Antiguo 04/12/2012, 09:07
 
Fecha de Ingreso: octubre-2012
Mensajes: 40
Antigüedad: 11 años, 6 meses
Puntos: 0
Redireccion 404 con la misma url

He visto en muchas páginas que cuando escribes una url que no existe te aparece el típico mensaje de error de página no encontrada pero manteniendo la url.

Por ejemplo intentas entrar a sitio.com/algoinventado
y el mensaje de error aparece sin que cambie la url.

Yo ahora lo tengo de forma que cuando aparece el error 404 se redirecciona(vía htaccess), entonces me aparece el error con la url tipo sitio.com/404.html

¿como tengo que hacerlo para que cuando se vea la página de error 404 se siga viendo la url que no existe?
  #2 (permalink)  
Antiguo 04/12/2012, 09:30
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Redireccion 404 con la misma url

con la directiva errorDocument ese es el comportamiento normal

ejemplo
ErrorDocument 404 /404.shtml

yo uso este shtml (puede ser un html normal tambien, o un php)
Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
  2. "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es">
  4. <title>Información</title>
  5. <meta http-equiv="content-type" content="application/xhtml+xml; charset=utf-8" />
  6. <style type="text/css">
  7. /*<![CDATA[*/
  8. body {
  9. font-family: verdana, sans-serif;
  10. font-size: 10pt;
  11. }
  12. .recurso{
  13. font-weight: bold;
  14. }
  15.  
  16. .horaerror{
  17. font-size: 8pt;
  18. color: #1E1E1E;
  19. }
  20. /*]]>*/
  21. </head>
  22. <!--#config timefmt="%d/%m/%Y a las %T" -->
  23. <!--#set var="RECURSO" value="<span class='recurso'>http://$SERVER_NAME$REQUEST_URI</span>" -->
  24. <p>Entre el 29-09-2011 y el 15-10-2011 el Sitio estará en tareas de mantenimiento<br />
  25. Si está buscando alguna script o demo, por favor envie un mensaje a <a href="mailto:[email protected]">ésta dirección</a> indicando la url que figura abajo<br /> 
  26. <!--#echo encoding="none" var="RECURSO" -->
  27. </p>
  28. <p>Sepa disculpar las molestias.<br />Gracias</p>
  29. <p><br /><br /><br /><span class='horaerror'>El problema se produjo el <!--#ECHO VAR="DATE_LOCAL" --></span></p>
  30. <!-- fix 404 ie
  31. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  32. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  33. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  34. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  35. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  36. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  37. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  38. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  39. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  40. -->
  41. </body>
  42. </html>

http://emprear.com/algoinventado.html
http://emprear.com/algoinventado
http://emprear.com/cualquiercosa.php

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #3 (permalink)  
Antiguo 04/12/2012, 09:42
 
Fecha de Ingreso: octubre-2012
Mensajes: 40
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: Redireccion 404 con la misma url

Ok muchas gracias voy a probar. Lo que no entiendo es que diferencia hay, yo lo tengo así pero con un html.
  #4 (permalink)  
Antiguo 04/12/2012, 09:50
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Redireccion 404 con la misma url

el shtml lo hace más dinámico, recupera la info de la url solicitada, la hora , etc
algo similar con php

Código PHP:
Ver original
  1. <?php
  2. $status = $_SERVER['REDIRECT_STATUS'];
  3. $codigos = array(
  4.         403 => array('403 Prohibido', 'Está prohibido el acceso a este recurso.'),
  5.         401 => array('401 No autorizado', 'Necesita de credenciales válidas para acceder a este recurso.'),
  6.         404 => array('404 No encontrado', 'El documento o recurso solicitado no se encuentra disponible.'),
  7.         405 => array('405 Método no permitido', 'Método no permitido.'),
  8.         408 => array('408 Tiempo de espera agotado', 'Su navegador ha superado el tiempo de espera permitido por el servidor.'),
  9.         500 => array('500 Error Interno del Servidor', 'Se ha pruducido un error interno en el servidor.')
  10.         );
  11.          
  12. $titulo = $codigos[$status][0];
  13. $mensaje = $codigos[$status][1];
  14. ?>
  15. <!DOCTYPE html>
  16. <html xmlns="http://www.w3.org/1999/xhtml" lang="es-ar">
  17. <head>
  18. <meta charset="utf-8" />
  19. <title>ForosEmprearCom : : Error <?php echo $titulo; ?></title>
  20. <meta name="author" content="Guillermo Gianello" lang="es" />
  21. </head>
  22. <body>
  23.  
  24. <?php
  25.  
  26.  
  27. if ($titulo == false || strlen($status) != 3) {
  28.     $message = 'Código incorrecto.';
  29. }
  30.  
  31. echo '<h1>' . $titulo . '</h1>' .  
  32.      '<p>' . $mensaje . '</p>';  
  33. echo "<p>Recurso solicitado: " . $_SERVER['REQUEST_URI'] . "</p>";
  34.  
  35. ?>
  36.  
  37. </body>
  38. </html>

podés manejar varios códigos de error al mismo tiempo con un solo archivo

Salu2
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #5 (permalink)  
Antiguo 04/12/2012, 09:58
 
Fecha de Ingreso: octubre-2012
Mensajes: 40
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: Redireccion 404 con la misma url

Ah ok no sabía lo del shtml. Estoy haciendo pruebas y veo que me pasa una cosa.

En el htaccess tengo la url entera en el errordocument..
ErrorDocument 404 http://misitio.es/error404.html

Así funciona pero muestra la url esa, no la que no existe.

Si lo pongo así ErrorDocument 404 /error404.html ya no muestra la url del error 404 sino la que no existe. Pero entonces no se muestra el documento de error personalizado. Solo se muestra en pantalla la ruta al archivo /error404.html

¿porque me pasa eso?

Ok ya funciona!

Resulta que tengo en localhost, en el pc, la copia de mi web para hacer pruebas y la tengo en localhost/copia-web/
Entonces he tenido que poner...
ErrorDocument 404 /copia-web/error404.html

Ahora ya va como quiero, muchas gracias!

Solo una cosa más. Tengo páginas dinámicas en las que he puesto que si el valor de la variable get no existe redirija a la página de error 404. Pero ¿como tendría que hacerlo para que me haga lo mismo?, es decir mostrar la página de error pero manteniendo la url que no existe.

Edito...

He leído un tuto en la red en el que hablaba sobre esto y se aconsejaba no usar redireccionamiento porque los buscadores pueden entender que existen esas páginas que en realidad no existen.
Así que he cambiado esto..
Código PHP:
if ($s3 == 0){
header('Location: ./404.htm');

por esto...
Código PHP:
if ($s3 == 0){
header("HTTP/1.0 404 Not Found");
header("Status: 404 Not Found");
include (
"./404.htm");
exit;

Ya va como quería!

Edito..

Una cosilla más. He puesto un meta "noindex" en la página personalizada de error 404. ¿está bien así o mejor dejar que la indexen los buscadores?

Última edición por berto82; 04/12/2012 a las 11:59
  #6 (permalink)  
Antiguo 05/12/2012, 22:20
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Redireccion 404 con la misma url

un comentario sobre el noindex, lo primero que tenés que hacer es verificar que no existan links rotos con lo cual los buscadores nunca llegarían a un 404, tambiém existe la posibilidad que el 404 sea llamado porque alguien tipeo mal una url.
El errorDocument está para eso, personalizar la página de error y darle contenido significativo, asi que su indexado no me parece mal.
Muchos, hacen de su index el mismo error 404

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #7 (permalink)  
Antiguo 06/12/2012, 19:36
 
Fecha de Ingreso: octubre-2012
Mensajes: 40
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: Redireccion 404 con la misma url

ok gracias, de momento le quité ese meta noindex porque vi en muchas páginas que lo tenían incluso con descripción y tags. A ver como va, supongo que las páginas que no son enlazadas desde el sitio no aparecen en los resultados. Saludos

Etiquetas: redireccionar
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 13:50.