为什么这个 IIS Rewrite 不适用于 Firefox 和 Chrome?

为什么这个 IIS Rewrite 不适用于 Firefox 和 Chrome?

在我的 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>

相关内容