我如何强制 IIS7 记录目录的实际默认文档而不是“/”?

我如何强制 IIS7 记录目录的实际默认文档而不是“/”?

IIS7 下的日志记录似乎已经发生了变化,因为对具有默认文档的父目录的访问现在的记录方式与 IIS6 不同。

尿道干字段似乎忽略了默认文档模块中定义的任何文档。据 Microsoft 称,这是设计使然。

  • 在下面互联网信息服务,如果你访问“example.com”,日志将显示“获取/默认.htm-80“。
  • 在下面微软 IIS7,如果您访问“example.com”,日志文件将显示“获取 / - 80“。

出于网络分析的目的,我们需要 IIS7 来记录对父目录的访问,并使用默认文档来记录它,就像上面的 IIS6 一样。

如果不使用 URL 重写,我们如何做到这一点?

答案1

理想情况下,最好的选择是使用 IIS URL Rewrite 模块。如下所示:

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

另一个可能的解决方案(我知道,这似乎有点 hack),是创建一个不同的默认文档页面(例如 index.htm),然后在该页面的内容中添加一个元刷新标记,以将请求发送到 default.htm

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

除了这些选项之外,您可能还需要编写一些代码来执行重定向。

相关内容