我的网站上有一些页面,必要时使用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与其他浏览器保持一致的任何建议?