Скрытые сегменты IIS 10 переходят на страницу 404 вместо 400, которую я устанавливаю в правиле URL Rewrite

Скрытые сегменты IIS 10 переходят на страницу 404 вместо 400, которую я устанавливаю в правиле URL Rewrite

У меня есть правило URL Rewrite, чтобы запретить доступ к сайту с любого URL, кроме определенного списка. Правило возвращает, 400 Bad Requestесли URL отсутствует в списке.

    <rule name="No unknown hosts" stopProcessing="true">
      <match url=".*" />
      <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
        <add input="{HTTP_HOST}" pattern="^example\.com$" negate="true" />
        <add input="{HTTP_HOST}" pattern="^www\.example\.com$" negate="true" />
        <add input="{HTTP_HOST}" pattern="^admin\.example\.com$" negate="true" />
      </conditions>
      <action type="CustomResponse" statusCode="400" />
    </rule>

Примерами URL-адресов, которые я пытаюсь заблокировать, являются mail.example.comили102.15.63.233 . Это отлично работает,кромекогда скрытый сегмент добавляется к URL, например, так mail.example.com/bin/. Это приводит к моей пользовательской странице ошибки 404, которая, помимо прочего, выглядит как дерьмо, потому что все таблицы стилей и другие ресурсы (изображения и т. д.) не разрешаются, поскольку URL заблокирован и возвращает 400. Хуже того, это вызывает ошибку при сканировании PCI DSS, потому что они думают, что я разрешаю просмотр каталогов.

Я провел почти весь день, выполняя поиск в Google всеми возможными способами, которые только мог придумать, но безуспешно. О, причина, по которой я делаю это таким образом, заключается в том, что недействительный заголовок HOST не может быть использован для обмана нашего сайта и перенаправления на вредоносный сайт (многие другие правила Rewrite полагаются на эту функциональность). Надеюсь, кто-нибудь здесь найдет ответ.

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