Apache 404 因 /boot.ini%2500.htm 失败

Apache 404 因 /boot.ini%2500.htm 失败

由于某种原因,以下 htaccess将要/boot.ini.htm如果测试的 URL 是,则重定向到 404 页面不是如果是/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,所以对机器人来说不会有任何区别。而且真实的无论如何,用户都不应该提出这样的请求。

相关内容