【问题标题】:URL rewrite is producing 404URL 重写产生 404
【发布时间】:2016-04-17 06:29:42
【问题描述】:

我正在尝试使用以下规则将 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>

【问题讨论】:

    标签: regex iis arr


    【解决方案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>
    

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

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

    【讨论】:

    • 唉,还是没有运气。 M1) 还是 404; M2)网站上没有443绑定,只有81; M3) 传入协议是 HTTPS。我在最顶部有一个重定向规则,可以将传入的 HTTP 改组到 HTTPS,例如 this。因此,我必须保持url="http://server3:81/" 的指示(HTTP)。
    • @InteXX:我查看了您的日志,它显示请求 url 为https://office.domain.com:443/app1,要替换的 url 为/app1,新的 URL 为http://server3:8080/app1。您可以尝试匹配 url (.*/app1) 并重写为 http://server3:8080/http://server3:81。当您收到 404 错误时,您转到的网址是什么?
    • 很好,那个 8080。我在它上面有一个 TFS 规则 (&lt;match url="(.*)" /&gt;&lt;action type="Rewrite" url="http://server3:8080/{R:0}" /&gt;)。我把它移到这条 /app1 规则之下; 404 消失了。现在我收到一个新错误:A potentially dangerous Request.Path value was detected from the client (:)。现在正在努力。
    • 最后一个我无法追踪;这是一个 ASP.NET 错误,因此没有可侦听的 HTTP 状态代码。看起来不太好……
    • 新的错误可能与路径组件不喜欢某些字符有关(more info);如果这解决了404 Error,那么请将答案标记为正确,如果您仍然遇到问题,请告诉我。
    猜你喜欢
    • 2013-08-05
    • 2018-06-25
    • 1970-01-01
    • 1970-01-01
    • 2020-02-05
    • 2013-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多