Как заставить IIS7 регистрировать фактический документ по умолчанию для каталога, а не для "/"?

Ведение журнала в IIS7, по-видимому, изменилось, поскольку доступ к родительскому каталогу с документом по умолчанию теперь регистрируется не так, как в IIS6.

Поле s-uri-stem, похоже, игнорирует любые документы, определенные в модуле Default Documents. По словам Microsoft, это сделано специально.

  • В IIS6, если вы перейдете на "example.com", в журнале будет показано "GET /default.htm - 80".
  • В IIS7, если вы перейдете на "example.com", в файле журнала будет показано "GET / - 80".

Для целей веб-аналитики нам необходим IIS7 для регистрации доступа к родительскому каталогу с документом по умолчанию для регистрации, как IIS6 выше.

Как мы можем сделать это без использования URL Rewrite?

1 ответ

В идеале лучше всего использовать модуль перезаписи URL IIS. Что-то вроде этого:

<rule name="Index Request" enabled="true" stopProcessing="true">
    <match url="^$" />
    <action type="Redirect" url="http://domain.com/default.htm" logRewrittenUrl="true" />
</rule>

Другое возможное решение (я знаю, это кажется небольшим взломом) - создать другую страницу документа по умолчанию (например, index.htm), а затем добавить метатег обновления в содержимое этой страницы, чтобы отправить запрос в default.htm.

<meta http-equiv="refresh" content="0;url=/default.htm">

Помимо этих параметров, вам может потребоваться написать некоторый код для выполнения перенаправления.

Другие вопросы по тегам