/ / redirige el error 403 usando .htaccess - linux, .htaccess, http-status-code-403

error de redirección 403 utilizando .htaccess - linux, .htaccess, http-status-code-403

Quiero redirigir cualquier 403 usando .htaccess, pero no parece funcionar.

Options +FollowSymlinks

RewriteEngine on
ErrorDocument 403 notfound.html
RewriteRule notfound.html

Toda ayuda apreciada.

Gracias Vaquero

Respuestas

3 para la respuesta № 1

La parte URL de una directiva ErrorDocument deberíacomience con una barra diagonal, que indica una ruta relativa a su DocumentRoot, o debería ser una URL completa (si desea usar un documento externo).

No debería necesitar las directivas RewriteEngine y RewriteRule aquí.

Entonces, suponiendo que su notfound.html esté en el nivel raíz de su sitio, su directiva debería verse así:

ErrorDocument 403 /notfound.html

3 para la respuesta № 2

Encontré un problema con el ejemplo anterior, que era:

ErrorDocument 403 /notfound.html

Tengo un directorio en mi sitio que almacena imágenes, digamos en domain.com/images

Quería que si alguien intenta acceder alURL del directorio para que sean redirigidos a la página de inicio del sitio. Mi problema era, con lo anterior, que la URL en el navegador seguiría siendo domain.com/images y luego la página de inicio se cargaría, pero la página de inicio haría referencia a hojas de estilo a las que no podía acceder desde esa URL. (Y tiene sentido: se supone que 403 muestra un mensaje de error).

Luego intenté investigar cómo redirigir un error 403 a otra URL y algunos sitios dijeron que no se puede hacer un 302 o 301; se está perdiendo el punto: 403 es un error, no un redireccionamiento.

Pero encontré un camino. Este es el archivo .htaccess dentro del directorio / images:

Options -Indexes
ErrorDocument 403 /images/403.php
RewriteEngine on
RewriteRule ^403.php$ /index.php [R=301]

Básicamente, la primera línea impide la inclusión en el directorio.

La segunda línea dice que para "permiso denegado"(es decir, error 403, que es lo que da la primera línea), el sitio debe cargar el archivo "/images/403.php". Pero en realidad no necesita crear ningún archivo 403.php en ese directorio, porque ...

La tercera línea enciende su motor de redireccionamiento

Y la cuarta línea dice que si el usuariointenta cargar la página 403.php (es decir, en este directorio "/ images" donde se encuentra este archivo .htaccess) y luego debe ser redirigido, utilizando una redirección 301 (permanente), a /index.php, que es el índice del directorio raíz (es decir, la página de inicio), y no el índice del subdirectorio / images (y de todos modos no hay índice en "/ images").

Por lo tanto, cómo obtener un 403 para redirigir a otra URL usando un redireccionamiento 301 (permanente) (o también puede intentar un redireccionamiento temporal 302).


-1 para la respuesta № 3

Aquí hay una manera súper fácil de hacer esto:

Usa esta línea

Options -Indexes
ErrorDocument 403 /goaway.html

dónde goaway.html contiene la siguiente línea en la sección del encabezado:

<meta HTTP-EQUIV="REFRESH" content="0; url=HERE YOU PUT THE URL YOU ARE REDIRECTING TO" />

Y eso es todo ... cada error 403 irá a tu goaway.html archivo en el directorio raíz y goaway.html los redirigirá a la URL de su elección