【发布时间】:2016-11-10 15:05:16
【问题描述】:
背景:我将传入的 80/443 流量转发到 \\SERVER2; TFS 在\\SERVER3 上运行。我希望将所有与 TFS 相关的请求路由到 \\SERVER3。我必须这样做,因为我在 \\SERVER2 上运行 Server Essentials,这非常挑剔,无法在 URL 重写下正常工作(几乎和 SharePoint 一样糟糕,但并不完全)。
这是默认网站上的唯一规则:
<rule name="TFS Rewrite" stopProcessing="true">
<match url="^tfs(.*)" />
<action type="Rewrite" url="http://server3:8080/{R:0}" />
</rule>
...这是失败的请求日志:https://1drv.ms/f/s!AodXF_j3BiWkhPAZwjnwC-rAecVgtw
请注意 PDF 第 87 行上请求的 URL:http://server3:8080/tfs。我可以在内部浏览到它就好了。外部 URL 是 https://tfs.domain.com/tfs。
下一个完全是文件特定的条目是 404 本身,在 #165 行。
我就是不明白。这是一个简单的规则。为什么 IIS 会为明显有效且有效的 URL 显示 404?
编辑
作为测试,我添加了这个条件:
<conditions>
<add input="{HTTP_HOST}" pattern="tfs.domain.com" />
</conditions>
现在,如果我浏览到 https://tfs.domain.com/,则会加载默认网站。
这与日志一起似乎表明,当 IIS 重写 URL 时,流量实际上并没有被路由到 \\SERVER3。
这里发生了什么?这是个谜。
【问题讨论】:
标签: url-rewriting http-status-code-404 iis-8