2012-01-07 15 views
7

Quiero mostrar un mensaje 404 (No encontrado), cuando el usuario intenta acceder al directorio no autorizado. No quiero usar páginas prohibidas. Lo he intentado con el código siguiente, pero no funciona..htaccess para redirigir al mensaje 404 (No encontrado) en el acceso a la carpeta no autorizada

RedirectMatch 404 ^/htaccess/.*$ 

¿Alguna idea de lo que podría estar yendo mal?

+0

¿Por qué no quieres usar páginas prohibidas? – Dan

+0

@Dan Creo que el directorio es invisible. – rekire

+0

@rekire ya está correcto. Puedo hacer que todas las carpetas sean invencibles usando RedirectMatch 404/pero tengo que poner htaccess en cada carpeta. cualquier forma de afectar a todos los directorios secundarios? – Leon

Respuesta

11

intento añadiendo lo siguiente a su archivo .htaccess

#if the URI starts with htaccess, return a 404 
RewriteRule ^htaccess/ - [R=404,L,NC] 

Editar

por ejemplo, sistema/función, sistema/clase, ...

Si usted tiene una muchas carpetas luego usan RewriteCond como se muestra a continuación, ya que es más fácil de leer que varias carpetas en una sola RewriteRule o varias RewriteRules, que duplican la pieza 404

RewriteCond %{REQUEST_URI} ^htaccess/ [NC,OR] 
RewriteCond %{REQUEST_URI} ^system/function/ [NC,OR] 
#just make sure the last rule does NOT have an OR 
RewriteCond %{REQUEST_URI} ^system/class/ [NC] 
RewriteRule . - [R=404,L,NC] 
+0

tengo toda la rama de la carpeta, por ejemplo, sistema/función, sistema/clase, si el usuario intenta acceder a esta carpeta por uri, simplemente muéstreles la página 404. ¿Necesito escribir un htaccess en cada carpeta? – Leon

+0

@Leon ver la edición anterior –

+0

Esa es una solución muy buena +1 – rekire

0

R = 404 no es un valor R válida, debe estar dentro del rango 300-399 o será ignorada. Es mejor simplemente redirigir a una url inexistente que no está bloqueada por otras reglas, esto activará su errordocument.

Cuestiones relacionadas