IIS 8重写规则给出了404错误

时间:2015-07-20 06:33:09

标签: asp.net angularjs iis url-rewriting prerender

我在IIS 8上对asp.net应用程序使用了以下重写规则。但是当我尝试访问www.mysiteurl.com/?_escaped_fragment_时,它会给我404错误。如果我将actionType更改为Redirect,则重定向成功。

<rule name="Prerender" stopProcessing="true">
          <match url="^(?!.*?(\.js|\.css|\.xml|\.less|\.png|\.jpg|\.jpeg|\.gif|\.woff|\.woff2|\.pdf|\.doc|\.txt|\.ico|\.rss|\.zip|\.mp3|\.rar|\.exe|\.wmv|\.doc|\.avi|\.ppt|\.mpg|\.mpeg|\.tif|\.wav|\.mov|\.psd|\.ai|\.xls|\.mp4|\.m4a|\.swf|\.dat|\.dmg|\.iso|\.flv|\.m4v|\.torrent))(.*)" ignoreCase="false" />
          <conditions logicalGrouping="MatchAny">
            <add input="{HTTP_USER_AGENT}" pattern="baiduspider|facebookexternalhit|twitterbot" />
            <add input="{QUERY_STRING}" pattern="_escaped_fragment_" ignoreCase="false" />
          </conditions>
          <action type="Rewrite" url="http://service.prerender.io/http://{HTTP_HOST}/{R:0}" />
        </rule>

但是,如果我将动作URL设置为同一服务器内的资源,则可以正常工作。因为我觉得问题发生了,因为它重定向到另一个域 IIS上是否有任何特定设置可以启用不同的域重写? 可能是什么问题?

1 个答案:

答案 0 :(得分:0)

经过研究后,我找到了解决方案。安装应用程序请求路由到IIS并启用代理解决了我的问题。

希望这会对某人有所帮助:)