URL重写产生404

时间:2016-01-12 15:07:34

标签: regex iis arr

我尝试使用以下规则将 office.domain.com/app1 请求重写为 server3:81 ,但我正在尝试404.我可以浏览 server3:81 就好了。

失败的请求跟踪日志可用here,但它们似乎没有显示出来。

我还尝试了url="http://server3:81/{R:0}"url="http://server3:81/{R:1}"(不确定原因/差异是什么),但两者都产生相同的结果(404)。

在我的统治中,我做错了什么? (警告:我现在对RegEx非常不方便,但我会尽力理解你的答案。我可能要求澄清。)

<rule name="App1" stopProcessing="true">
  <match url="^app1" />
  <action type="Rewrite" url="http://server3:81/" />
</rule>

1 个答案:

答案 0 :(得分:1)

您可能想要尝试一些事项,第一种是更改regex模式以匹配您要替换的整个网址并捕获您要保留的部分。第二个建议是验证您的重写网址是http而不是https

方法一:(正则表达式更改)

<rule name="App1" stopProcessing="true">
 <match url="^.*/(app1)" />
   <action type="Rewrite" url="http://server3:81/{R:1}" />
</rule>

方法二:(正则表达式+ https +端口更改)

<rule name="App1" stopProcessing="true">
 <match url="^.*/(app1)" />
   <action type="Rewrite" url="https://server3:8080/{R:1}" />
</rule>

方法三:(正则表达式完整网址+相对重写)

<rule name="App1" stopProcessing="true">
 <match url=".*" />
   <action type="Rewrite" url="server3:81/app1" />
</rule>