我有一个网页,如果用户来自http://
,我想重定向到特定的链接<script language="JavaScript">
var loc = window.location.href+'';
if (loc.indexOf('http://')==0){
window.location.href = loc.replace('http://','https://secure.example.com/app');
}
</script>
如果用户来自http://example.com/app或任何http://我想将其重定向到该确切链接。
当我运行此JavaScript时,它正在使用https://secure.example.com/app并添加domain.com/app,如下所示
对此的任何帮助将不胜感激。
我也尝试过meta标签
<meta http-equiv="refresh" content="2;url=https://secure.example.com/app" />
但是,随着犹豫页面的变化,它只是让人耳目一新,感觉不对。
答案 0 :(得分:1)
<script language="JavaScript">
var loc = window.location.href+'';
if (loc.indexOf('http://www.')==0){
window.location.href = loc.replace('http://www.','https://secure.');
}
else if (loc.indexOf('http://')==0) {
window.location.href = loc.replace('http://','https://secure.');
}
</script>
正在执行您所描述的内容,因为您正在使用http://
替换https://secure.example.com/app
,所以当然http://
之后的所有内容仍然存在。
答案 1 :(得分:1)
如果没有http://
,我建议您只使用https://secure.
替换www
。
要额外涵盖 www
的情况,您只需将www.
替换为空:
//var loc = window.location.href;
var loc = 'http://www.example.com/app';
console.log(loc);
loc = loc.replace('www.', '');
loc = loc.replace('http://', 'https://secure.');
console.log(loc);
答案 2 :(得分:1)
将其添加到您的服务器配置文件中,而不是在html中执行
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
301 REDIRECT应该是更好的方法
用于javascript方法(es6)。不推荐的方式,因为浏览器重定向并不总是可靠的
return location.protocol != 'https:' ? location.protocol = "https:"
: {do nothing logic}