Я думаю, проблема с IE, а не с IIS.
Url Rewriting обычно относится к процессу сопоставления URL-адреса от http://example/shoes/clarkes
до http://example/shoes.aspx?maker=clarkes
на сервере, чтобы браузер не знал об этом.
Что вам нужно сделать, это перенаправить браузер с http://www.server.com//page.aspx
на номер http://www.server.com/page.aspx
, используя 301 Http response code.
В теории:
Как вы, кажется, с помощью ASP.NET, наиболее прозрачный способ сделать это было бы написать HttpModule, который проверяет двойные косые черты в запрашиваемом URI и делает редирект.
Самый простой способ сделать это - поместить некоторый код в Global.ascx. (Cs | vb), чтобы проверить запрошенный URI на BeginRequest.
В любом случае, код для проверки будет таким же.
В практике:
Может быть, что IIS или ASP.NET съедает двойной «/», прежде чем вы получите возможность увидеть его. Если это IIS, вам, возможно, придется использовать прокси-сервер перед IIS. Если это ASP.NET, то вы можете найти ISAPI Extension, который сделает эту работу за вас.
Другие варианты
Вы можете либо
- Разделить страницу так, что большинство из отдельных ресурсов можно кэшировать отдельно от содержимого HTML
- Обучать пользователей, что они не должны добавьте дополнительную косую черту.
Вопрос не в том, что он не указывает, где вы видите такие запросы. Мое тестирование показывает, что такие запросы не доходят до файлов журнала IIS7 и не достигают конвейера ASP.NET. IIS. – 2012-01-24 01:06:30