Apache 404 дает сбой с /boot.ini%2500.htm

Apache 404 дает сбой с /boot.ini%2500.htm

По какой-то причине следующий htaccessволяперенаправить на страницу 404, если протестированный URL-адрес — /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 вызывается сервером Apache, .htaccessдаже до того, как он будет обработан. Это, скорее всего, вызвано чем-то вроде mod_security (в заголовках HTTP-ответа может быть какая-то подсказка).

URL-адреса, содержащие , %могут потенциально представлять угрозу безопасности. Поэтому не обязательно будет чем-то необычным иметь на сервере общее правило, которое просто блокирует эти запросы. Если у вас нет доступа к конфигурации сервера в какой-либо форме, то вряд ли вы сможете как-то повлиять на это.

Но он уже возвращает 404. А 404 — это 404, в конце концов, так что для ботов это не будет иметь никакого значения. Инастоящийпользователи в любом случае никогда не должны делать подобных запросов.

Связанный контент