Я пытаюсь создать HttpModule в C #, который будет перенаправлять произвольные URL-адреса и отсутствующие файлы и который будет выполнять канонизацию всех входящих URL-адресов. Часть моего процесса канонизации заключается в перенаправлении из документов по умолчанию (таких как http://www.contoso.com/default.aspx) в пустой каталог (например, http://www.contoso.com/)
. Я обнаружил, что когда IIS-сервер получает запрос на пустой каталог, он обычно обрабатывает этот запрос, а затем создает дочерний запрос длявыбранный документ по умолчанию. Это создает цикл перенаправления в моем модуле - первый запрос проходит нормально, но когда он видит дочерний запрос, он удаляет документ по умолчанию из URL и перенаправляет обратно в пустой каталог, снова запуская процесс.
Очевидно, что все, что мне нужно для решения этой проблемы, - это чтобы мой модуль знал, когда он видит дочерний запрос, чтобы он мог его игнорировать. Но я не могу найти в Интернете ничего, описывающего, как разделить эти два запроса отдельно.Я обнаружил, что заголовки запроса намежду этими двумя запросами, поэтому я попытался добавить значение в заголовки запроса и затем искать это значение.Это работало в IIS 7, но, очевидно, IIS 6 не позволит вам изменять заголовки запросов, и мой код должен выполняться в обоих случаях.