2019-11-18
描述
如果页面当前是 HTTP,把他重定向到 HTTPS。除此外,还应替换他的历史,以便按下返回按钮时,并不会让他返回 HTTP 页面。
提示
- 使用
location.protocol
获取当前使用的协议 - 如果不是 HTTPS,使用
location.replace()
将当前页面替换为 HTTPS - 使用
location.href
获取完整的地址,使用String.prototype.split()
将协议部分从 URL 中分离出去 - 当然你也可以在服务端使用 301 重定向
- 如果可以的话,HSTS 将会更棒
代码
const httpsRedirect = () => {
if (location.protocol !== 'https:') location.replace('https://' + location.href.split('//')[1]);
};
示例
如果你在 http://hacpai.com/activity/checkin,你将被重定向到 https://hacpai.com/activity/checkin
httpsRedirect();