我在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上是否有任何特定设置可以启用不同的域重写? 可能是什么问题?
答案 0 :(得分:0)
经过研究后,我找到了解决方案。安装应用程序请求路由到IIS并启用代理解决了我的问题。
希望这会对某人有所帮助:)