
Aus irgendeinem Grund die folgende htaccessWilleWeiterleitung auf eine 404-Seite, wenn die getestete URL /boot.ini.htm
abernichtwenn es so ist /boot.ini%2500.htm
.
Was muss ich ändern, damit dies funktioniert, oder ist das ein Fehler?
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
Mein Server ist:
Serverversion: Apache/2.4.41 (Ubuntu)
Server erstellt: 2021-06-17T18:27:53
Antwort1
In allen Fällen wird die standardmäßige Apache 404-Antwort angezeigt.
In diesem Fall wird die Anfrage mit Sicherheit nicht von Codeigniter verarbeitet. Es sieht so aus, als ob die 404-Meldung vom Apache-Server ausgelöst wird, bevor sie .htaccess
überhaupt verarbeitet wird. Dies wird sehr wahrscheinlich durch etwas wie mod_security ausgelöst (es könnte einen Hinweis in den HTTP-Antwortheadern geben).
URLs, die Folgendes enthalten, %
können möglicherweise ein Sicherheitsrisiko darstellen. Daher wäre es nicht unbedingt ungewöhnlich, eine allgemeine Regel auf dem Server zu haben, die diese Anfragen einfach blockiert. Sofern Sie nicht in irgendeiner Form Zugriff auf die Serverkonfiguration haben, ist es unwahrscheinlich, dass Sie etwas tun können, um dies zu beeinflussen.
Aber es wird bereits eine 404-Fehlermeldung zurückgegeben. Und eine 404-Fehlermeldung ist schließlich eine 404-Fehlermeldung, also wird es für Bots keinen Unterschied machen. UndrealBenutzer sollten solche Anfragen ohnehin nie stellen.