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

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

  1. Почему? Намерение по-прежнему актуально?
  2. Какие-либо последствия для безопасности?
  3. Как я могу отключить его, чтобы он работал с правилом перезаписи URL RemoveTrailingSlashRule

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

См. Это предупреждение в разделе Добавление правила для добавления или удаления символа косой черты в конце: См. Это предупреждение в разделе Добавление правила для добавления или  удалите завершающий символ косой черты

Это создаст RemoveTrailingSlashRule1: Редактировать правило для входящих подключений RemoveTrailingSlashRule1


person Malartre    schedule 07.12.2011    source источник
comment
К сожалению, на этот вопрос нет ответов. Я тоже сталкиваюсь с этим. Удалось ли вам найти обходные пути или дополнительную информацию по этому поводу?   -  person Stephen McDaniel    schedule 09.04.2014
comment
Извини, я тоже бился головой об этом. Я думаю, что проблема заключается в приложении, поскольку IIS обрабатывает его так же, как корень веб-сайта, требующий завершающей косой черты. Я даже попробовал очистить страницу на главном веб-сайте, которая выполняла запрос / ответ с дополнительного сайта, но IIS, похоже, перенаправляет до того, как какое-либо правило перезаписи вступит в силу, независимо от того, действуют ли правила на уровне сервера или сайта, будь то перезапись IIS или Helicon Ape , и т.д.   -  person goodeye    schedule 19.05.2014


Ответы (1)


У меня есть ответ для конкретного случая дочернего приложения IIS здесь: https://stackoverflow.com/a/25817317/292060. Дочернее приложение кажется обычным виновником, но явно не описано в этом вопросе.

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

  1. Почему? Намерение по-прежнему актуально?

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

  1. Какие-либо последствия для безопасности?

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

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

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

У меня есть ответ, если проблема в дочернем приложении, здесь: https://stackoverflow.com/a/25817317/292060 Резюме в IIS:

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

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

person goodeye    schedule 12.09.2014
comment
Спасибо за понимание. Несомненно, ценный вклад. - person TheSoftwareJedi; 19.09.2014