URL重写期间奇数404

时间:2016-07-08 06:10:19

标签: url-rewriting http-status-code-404 iis-8

背景:我将传入的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行的请求网址:http://server3:8080/tfs。我可以在内部浏览就好了。外部网址为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

这里发生了什么?这是一个谜。

1 个答案:

答案 0 :(得分:0)

好的,我明白了。

我安装了URL Rewrite和ARR Modules,但我还没有启用代理处理。

我创建了一个虚拟反向代理规则,并提示在IIS中启用它。我这样做了,删除了虚拟规则,现在一切都按预期工作了。