La parte pertinente de mi .htaccess se ve así:Problema a redirigir 403 Forbidden a 404 Not Found
Y está generando las siguientes respuestas:
- /include 403
- /include/404
- /include/config.inc 403
Puedo ver mi patrón que el problema es probable en la parte (/.*) pero todo lo que he intentado me da los mismos resultados; en lugar de obtener 404 de forma consistente, obtengo un 404 para el primer caso y 403 para todo lo demás. ¿Qué pasa con la expresión que estoy usando? Alternativamente, dado que tengo que hacer esto para algunos directorios, ¿existe un enfoque general que me permita convertir las 403 respuestas a 404?
ACTUALIZACIÓN: He descubierto que mediante la eliminación de la FileMatch consigo mejores resultados, por lo que mi .htaccess ahora se ve así:
Options -Indexes
RedirectMatch 404 ^/include(/.*)?$ # Added dlamblin's first suggestion
y genera las siguientes respuestas:
- /incluir 404
- /include/404
- /include/config.inc 403
UPDATE: Curiosamente he descubierto que la siguiente produce una salida diferente:
RedirectMatch 404 ^/include(/?|/.*)$
RedirectMatch 404 ^/template(/?|/.*)$
el patrón de plantilla funciona en todos los casos, sin embargo incluyen todavía está generando 403 para todos los archivos en incluir (por ejemplo, /include/config.inc) ¿Podría ser un problema con el nombre del directorio y no un problema con el archivo .htaccess en sí?
ACTUALIZACIÓN: El siguiente en mi .htaccess entraba en conflicto con la redirección cuando se accede a /include/config.inc.
<FilesMatch config>
Order allow,deny
Deny from all
</FilesMatch>
Es hace mucho tiempo ahora, pero me gustaría sugerir que se podía resolver todos estos problemas, con solo colocar su incluye plantillas y en algún lugar fuera la raíz del documento; ¡es la forma más difícil de arruinar y tiene una carga ligeramente menor en Apache para arrancar! –
más rápida y más sencilla solución que sólo necesita 'Directiva ErrorDocument' y una página PHP para el error 404: [. Sólo tiene que usar' http_response_code'] (http://stackoverflow.com/a/18109452/1134080) No hay necesidad de meterse con ' RedirectMatch', 'RewriteEngine', etc. – ADTC