如何制作每页加载运行一次的ssl转发脚本

时间:2014-12-04 17:51:08

标签: javascript html forward

我在使用javascript脚本时遇到了一些麻烦,该脚本会自动转发您使用ssl。例如,

  

http://www.example.com/link变为https://www.example.com/link

但我的问题是不断加载脚本,但是我希望它在已经加载时停止。它会不断重新加载,使得点击页面上的链接变得非常烦人和困难。

这是我当前的脚本

  

window.location =“https://”+ window.location.hostname + window.location.pathname + window.location.search;

1 个答案:

答案 0 :(得分:2)

你需要这个:

if(window.location.protocol == 'http:') {
    window.location = "https://" + window.location.hostname + window.location.pathname + window.location.search;
}

......甚至更好:

if(window.location.protocol == 'http:') {
    window.location.replace(window.location.toString().replace(/^http:/, 'https:'));
}

第二种变体更好,因为:

  • 网址可能很复杂且处理不当
  • 由于使用window.location.replace()而不是直接将字符串分配给window.location,因此以前的网址将从历史记录中删除,并且当用户点击“返回”时按钮,他将跳转到原始页面,而不是#34; http:"协议:http://www.w3schools.com/jsref/met_loc_replace.asp

但最好在服务器端实现这一点。