Ver Mensaje Individual
  #4 (permalink)  
Antiguo 01/05/2013, 10:52
rjulio21
 
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 389
Antigüedad: 13 años, 8 meses
Puntos: 16
Respuesta: ErrorDocument en Htaccess

Cita:
Iniciado por emprear Ver Mensaje
el .htaccess que contiene la directiva debe de estar en la raiz de tu web, y luego en la ruta ponés la relativa a la raíz del sitio

ejemplo
si tu raiz (el document_root del sitio) es /htdocs
ponés ahi el htaccess y dentro
Código:
errorDocument 404 /404.html
y el 404.html en la raíz también, si el 404 lo ponés en otra carpeta
Código:
errorDocument 404 /otracarpeta/404.html
Hay una particularidad con IE, si tu 404.html tiene menos de 512 bytes, te muestra la página personalizada de error del sistema windows no la del Apache

ej.
404.html
Código:
<html>
<head>
<title>Error 404</title>
</head>
<body>
<h1>Página no encontrada</h1>
</body>
</html>
no te lo toma en IE, podés corregirlo poniendo simplemente
Código:
<html>
<head>
<title>Error 404</title>
</head>
<body>
<h1>Página no encontrada</h1>
<!--
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -- > completás con caracteres hasta superar los 512 bytes
-->
</body>
</html>
Saludos
Ok. MI root es Tienda:
Y este es el codigo que tengo hasta ahora:
Código Apache:
Ver original
  1. RewriteEngine On
  2. RewriteBase /Tienda
  3.  
  4. #================================================
  5. #Remueve el ultimo slash: ejemplo: www.pagina.com/hola/ por www.pagina.com/hola
  6. RewriteCond %{REQUEST_FILENAME} !-d
  7. RewriteRule ^(.*)/$ /$1 [R=permanent,QSA]
  8. #================================================
  9.  
  10. RewriteCond %{REQUEST_FILENAME} !-f
  11. RewriteCond %{REQUEST_FILENAME} !-d
  12. RewriteRule ^principal\.php /registroUsuario.php [R]
  13. RewriteRule ^productos$ /Tienda/principal.php [L]
  14. RewriteRule ^productos/(.*)$ /Tienda/principal.php?cat=$1
  15. #RewriteRule ^HojasDeEstilo/$ /Tienda/css/[L]
  16. #================================================
  17. #ERRORES
  18. #================================================
  19. ErrorDocument 404: /Tienda/Error/404.php
  20.  RewriteCond %{REQUEST_FILENAME} !-f
  21.  RewriteCond %{REQUEST_FILENAME} !-d
  22.  RewriteCond %{REQUEST_FILENAME}\.php -f
  23.  
  24.  RewriteRule ^(.*)$ $1.php [L,QSA]

Fijate que le tuve que poner la direccion ROOT en cada linea, de lo contrario no me tomaba la redireccion correctamente y no me encuentra el archivo. Esto sucede usando esa instruccion "rewriteBase" o no teniendola me pasa lo mismo, por eso mi duda de para que funciona esa instruccion.

Adicionalmente, pues probando esto veo que efectivamente al introducir algo como
Código Apache:
Ver original
  1. "localhost/tienda/cualquiercosa"
el me manda a la pagina 404. sin problemas.
Pero si coloco algo como
Código Apache:
Ver original
  1. localhost/tienda/productos/cualquiercosa
El sitio pierde la ubicacion JS y los CSS . Alguna idea de porq puede ser? :S
Mas perdido q adan el dia de las madres.
__________________
Lo imposible es lo posible visto por los ojos de un incapaz.
Si te sirve la respuesta. dale + al karma.
Saludos