http重定向到特定的https链接

时间:2018-04-11 20:11:08

标签: javascript redirect

我有一个网页,如果用户来自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,如下所示

  

https://secure.example.com/appexample.com/app

对此的任何帮助将不胜感激。

我也尝试过meta标签 <meta http-equiv="refresh" content="2;url=https://secure.example.com/app" />

但是,随着犹豫页面的变化,它只是让人耳目一新,感觉不对。

3 个答案:

答案 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}