
何らかの理由で、次のhtaccess意思テストしたURLが404ページにリダイレクトされますが/boot.ini.htm
、ないもしそれが/boot.ini%2500.htm
。
これを機能させるには何を変更する必要がありますか、それともこれはバグですか?
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
私のサーバーは:
サーバーバージョン: Apache/2.4.41 (Ubuntu)
サーバー構築日: 2021-06-17T18:27:53
答え1
すべてのインスタンスで、デフォルトのApache 404応答が表示されています
その場合、リクエストは Codeigniter によって処理されていないことは確かです。404 は、.htaccess
処理される前に Apache サーバーによってトリガーされているようです。これは、mod_security のようなものによってトリガーされる可能性が高いです (HTTP 応答ヘッダーに何らかの手がかりがある可能性があります)。
を含む URL は、%
セキュリティ上の脅威となる可能性があります。したがって、サーバー上でこれらのリクエストをブロックする包括的なルールを設定することは、必ずしも珍しいことではありません。何らかの形でサーバー構成にアクセスできない限り、これに影響を与えることはほとんど不可能です。
しかし、すでに404を返しています。そして、404は結局404なので、ボットにとっては何の違いもありません。そして本物いずれにせよ、ユーザーはそのようなリクエストを行うべきではありません。