![我如何强制 IIS7 记录目录的实际默认文档而不是“/”?](https://linux22.com/image/549688/%E6%88%91%E5%A6%82%E4%BD%95%E5%BC%BA%E5%88%B6%20IIS7%20%E8%AE%B0%E5%BD%95%E7%9B%AE%E5%BD%95%E7%9A%84%E5%AE%9E%E9%99%85%E9%BB%98%E8%AE%A4%E6%96%87%E6%A1%A3%E8%80%8C%E4%B8%8D%E6%98%AF%E2%80%9C%2F%E2%80%9D%EF%BC%9F.png)
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">
除了这些选项之外,您可能还需要编写一些代码来执行重定向。