
Por alguna razón el siguiente htaccessvoluntadredirigir a una página 404 si la URL probada no es /boot.ini.htm
más quenosi esto es /boot.ini%2500.htm
.
¿Qué necesito cambiar para que esto funcione o es un error?
Options All -Indexes
Options +FollowSymlinks
ErrorDocument 403 /site/404
ErrorDocument 404 /site/404
RewriteEngine On
RewriteRule ^(fonts)($|/) - [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([\s\S]*)$ index.php/$1 [L,NC,QSA]
# Ensure Authorization header is passed along
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
ServerSignature Off
php_value memory_limit 256M
Mi servidor es:
Versión del servidor: Apache/2.4.41 (Ubuntu)
Servidor construido: 2021-06-17T18:27:53
Respuesta1
En todos los casos veo la respuesta predeterminada de Apache 404.
En ese caso, Codeigniter no procesa la solicitud. Parece que el servidor Apache activa el 404, .htaccess
incluso antes de procesarlo. Es muy probable que esto se deba a algo como mod_security (puede haber alguna pista en los encabezados de respuesta HTTP).
Las URL que contienen %
pueden representar potencialmente una amenaza para la seguridad. Por lo tanto, no sería necesariamente tan inusual tener una regla general en el servidor que simplemente bloquee estas solicitudes. A menos que tenga acceso a la configuración del servidor de alguna forma, es poco probable que pueda hacer algo para influir en esto.
Pero ya está devolviendo un 404. Y un 404 es un 404 después de todo, por lo que no hará ninguna diferencia para los bots. YrealDe todos modos, los usuarios nunca deberían realizar tales solicitudes.