Подтвердить что ты не робот

Почему IIS 7.5 добавляет конечную косую черту в папки? Можем ли мы отключить перенаправление вежливости для правила URL Rewrite, которое удаляет конечную косую черту?

IIS очищает URL-адреса в каталогах, добавляя конечную косую черту. Смотрите старые документы из IIS 6: IIS генерирует вежливую переадресацию, когда запрашивается папка без конечной косой черты

  • Почему? Является ли намерение еще актуальным?
  • Любые последствия для безопасности?
  • Как я могу отключить его, чтобы сделать эту работу с правилом Rewrite URL-адреса "RemoveTrailingSlashRule"

Когда вы добавляете правило в IIS 7.5 с URL Rewrite 2, это правило не будет применяться к каталогам (используя IsDirectory) и папкам (используя IsFolder).

См. это предупреждение о добавлении правила для добавления или удаления символа конечной косой черты: See this warning on Add a rule to append or remove the trailing slash symbol

Это создаст RemoveTrailingSlashRule1: Edit Inbound Rule RemoveTrailingSlashRule1

4b9b3361

Ответ 1

У меня есть ответ для конкретного случая приложения IIS для детей: fooobar.com/info/258233/.... Похоже, что дочернее приложение является обычным преступником, но явно не описано в этом вопросе.

Чтобы попытаться ответить на вопросы, вот мои мнения от работы с IIS и Microsoft в течение многих лет. У меня нет твердых источников, чтобы цитировать; некоторые из них - это просто чувства кишки.

  • Почему? Является ли намерение еще актуальным?

Я думаю, что это связано с оригинальной функцией "по умолчанию", а именно с index.html. Веб-сайты хотели, чтобы их домашняя страница была просто доменом, затем она распространялась на подпапки. С переписыванием URL-адреса намерение больше не имеет отношения к делу - вы можете переписать его на содержание вашего сердца, и, скорее, IIS уйдет с пути. Обычно нужно искать дружественные URL-адреса, а не косые черты (за исключением корня домена/веб-сайта), которые должны иметь завершающую косую черту, даже если некоторые браузеры, такие как Chrome, становятся симпатичными и скрывают его).

  1. Любые последствия для безопасности?

Я думаю, что единственным следствием безопасности был исходный просмотр каталогов. Если вы забыли сделать документ по умолчанию, и просмотр каталогов был включен, пользователи могли просматривать файлы вашего сайта. Насколько мне известно, просмотр каталогов был отключен по умолчанию в качестве значения по умолчанию.

При любых запросах, будь то завершение косой черты или нет, переписывание URL или нет, ваш сервер и код должны выдерживать плохие запросы. Это верно для всех ситуаций, а не только для косой черты. http://xkcd.com/327/

  1. Как я могу отключить его, чтобы сделать эту работу с правилом Rewrite URL-адреса "RemoveTrailingSlashRule"

У меня есть ответ, если проблема - это дочернее приложение, здесь: fooobar.com/info/258233/... Резюме в IIS:

  • Отключить функцию документа по умолчанию для дочернего приложения.
  • Используя Url Rewrite, создайте правило, чтобы переписать (не перенаправить) пустой запрос на default.aspx

Если этот вопрос относится к более общей проблеме, включая регулярные вложенные папки, даже если это не дочернее приложение, подумайте об удалении "Не является каталогом" из этого правила и пусть это перенаправление, даже если он видит каталог. Это может работать или может создать бесконечный цикл перенаправления, я не уверен.