【发布时间】:2015-07-20 06:33:08
【问题描述】:
我在 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 上是否有任何特定设置来启用不同的域重写?
可能是什么问题?
【问题讨论】:
标签: asp.net angularjs iis url-rewriting prerender