Safari为什么不允许使用Javascript进行HTTPS-> HTTP重定向?

时间:2019-05-31 23:24:26

标签: javascript php safari

我的网站上有一些页面,必要时使用HTTP而不是HTTPS。我的条件里面包含JavaScript,该条件检查页面是否应为HTTP,然后在除Safari(基于Chrome / Chromium的Firefox)之外的所有浏览器中,使用window.location.replace成功地将https:// URL替换为http:// URL ,IE11,Edge,Opera)。

Safari的问题是它将接受重定向,但立即尝试强制HTTPS,这会导致http-> https-> http-> https的重定向无限循环,依此类推。

是否可以使用某些东西来强迫Safari遵守此重定向?我每天可能有成千上万的人访问这些页面,因此让用户更改Safari设置(如果相关)对我来说不是一个很好的解决方案。

我尝试了几种替代客户端上URL的方法。我用PHP来回应:

  echo '<html>
    <head>
      <meta http-equiv="refresh" content="2;url='.$url.'" /> . 
      <script>window.location.replace("'.$url.'")</script>
    </head>
    <body>You are being redirected.</body>
  </html>';

变化形式:

  • window.location.replace
  • document.location.replace
  • window.location.href
  • window.location
  • window.location.assign
  • self.location

但是,唯一的区别是Safari尝试将页面重定向到https的速度有多快,而没有一个让我更接近。

关于如何使Safari与其他浏览器保持一致的任何建议?

0 个答案:

没有答案