Запаздывающие точки в URL приводят к пустым 404 страницам на IIS

Посмотрите на кабели/коннекторы или посмотрите на dmesg.

Вы не можете полагаться на/dev/hd для дисков PATA. Для современных систем все диски PATA/SATA обнаружатся как/dev/sd, потому что новый уровень ATA использует sd префикс. Вы будете только видеть/dev/hd, если Ваша ОС будет использовать старые драйверы ATA устаревшие.

4
задан 10 December 2012 в 18:51
3 ответа

Об этом есть база знаний: http://support.microsoft.com/kb/2520479

В результате возникает проблема с порядком операций, при которой обработчики .NET для различные функции путаются и вводят в заблуждение. Некоторые обработчики .NET переписывают URL-адрес в форму без расширений, и они могут напугать другие вещи.

Краткое временное решение - переместить все обработчики ExtensionlessUrlHandler в самый конец списка после любые добавленные вами пользовательские файлы, которые могут касаться данных PathInfo.

Возможно, это не ваша точная ошибка, но стоит попробовать.

3
ответ дан 3 December 2019 в 02:59

Adding this attribute in the httpRuntime section may help you:

<configuration>
  <system.web>
    <httpRuntime ... relaxedUrlToFileSystemMapping="true" .../>
  </system.web>
</configuration>

Gets or sets a value that indicates whether the URL in an HTTP request is required to be a valid Windows file path.

More information about relaxedUrlToFileSystemMapping

3
ответ дан 3 December 2019 в 02:59

Я не могу дать вам ответ о том, почему структура dotnet демонстрирует такое раздражающее поведение. Это почти как если бы он рассматривал 404 как обработанный 404 и пропускал страницу IIS 404 по умолчанию. Возможно, он устанавливает:

Response.IisTrySkipIisCustomErrors

Microsoft docs

В любом случае, когда я реализовал ваше правило, я настроил ваше регулярное выражение для поддержки завершающего . за которым следует необязательный / .

например

https://localhost/investing./

Я обновил его для поддержки необязательной косой черты.

<rule name="Trailing Dots" stopProcessing="true">
    <match url="\.+/?$" />
    <action type="Rewrite" url="/404.html" appendQueryString="false" />
  </rule>

Я бы добавил это как комментарий, но у меня нет ранга, чтобы сделать это.

1
ответ дан 3 December 2019 в 02:59

Теги

Похожие вопросы