在我的 Windows 2008R2 服务器上的 IIS7.5 中,我有一个 URL 重写。重写似乎在 Internet Explorer 中起作用,但 Firefox 和 Chrome 仍然给我 404。如果刷新时不使用存储在缓存中的内容,Firefox 甚至会跳过重定向。
有任何线索可以知道如何解决吗?
<rewrite>
<rules>
<rule name="Redirect site" patternSyntax="Wildcard" stopProcessing="true">
<match url="{HTTP_HOST}/site*" />
<conditions>
</conditions>
<action type="Redirect" url="http://site.domain.org" redirectType="Permanent"/>
</rule>
</rules>
</rewrite>
答案1
我不能谈论 Chrome,但 Firefox 有一个 bug,并且已经存在了相当长一段时间,它无法识别某些页面上的新内容,而是使用其缓存。仅仅重新启动浏览器是没有用的。您必须完全清除浏览器缓存。在某些 Web 应用中,我必须将随机或带时间戳的字符串附加到 URL 中,以便让 FF 始终重新加载某些页面。标题中的相关元标记也经常被 FF 忽略。
答案2
这是我最终得到的结果,而且它似乎有效。
<rewrite>
<rules>
<rule name="Redirect to HTTPS" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="^OFF$" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>