2014-10-31 84 views
0

我有麻烦试图重定向我的网站从HTTP到HTTPS使用JavaScript(我知道这不是最好的选择),它是工作,但我想增加3重访的限制,如果浏览器赢得'切换到https,它会重定向到我过期的页面。我正在试图用cookie来计数反弹。不幸的是,它似乎不工作,甚至我的重定向到https停止工作。我无法确定问题。任何帮助?谢谢。 这里是我的代码:将网站重定向到HTTPS并重试次数有限?

<script language="JavaScript"> 
var loc = window.location+''; 
if (retry>=3)[ 
alert('We are sorry, but your client does NOT support SSL(Https) protocol.') 
alert("This Website Can Not Be Loaded, Your Browser Is Out Of Date!!!") 
window.location.replace("https://gamingwiththecrew.com/outofdate.html"); 

if (loc.indexOf('http://')==0){ 
document.cookie="retry= + 1"; 
window.location.href = loc.replace('http://','https://'); 
} 
</script> 
+0

检查您的代码中的语法错误,您的第一个如果意味着结束? 您也可以使用window.location.protocol,并且您需要将cookie值'retry'增加1,而不是将其设置为'+ 1'。编辑:你有什么客户尝试“*支持*”?几乎每个能够呈现网站的浏览器都支持https。 – 2014-10-31 22:49:30

回答

1

你应该检查你的代码的语法错误:

检查语法,其中if(retry>3) [。例外'[''应该是'{'代替。

您应该尝试window.retry以全局方式存储变量,而不是使用“cookie”,因为某些访问者可能会在浏览器中禁用Cookie。

一个例子应该是:

<script language="JavaScript"> 

window.retry = 0; 
var loc = window.location+''; 
if(window.retry>=3){ 
    alert('We are sorry, but your client does NOT support SSL(Https)protocol.'); 
    alert("This Website Can Not Be Loaded, Your Browser Is Out Of Date!!!"); 
    window.location.replace("https://gamingwiththecrew.com/outofdate.html"); 
    if (loc.indexOf('http://')==0){ 
     window.retry +=1; 
     window.location.href = loc.replace('http://','https://'); 
} 

</script> 

希望帮助?

0

好的,谢谢斯坦利阿莫斯,但是当我尝试示例代码时,它仍然不起作用。在访问loc.replace之前,代码似乎是“挂起”的。 但我解决了它通过移动

if (loc.indexOf('http://')==0){ 

到开头。 所以我的代码看起来像这样:

<script language="JavaScript"> 

window.retry = 0; 
var loc = window.location+''; 
if (loc.indexOf('http://')==0){ 
    window.retry +=1; 
    window.location.href = loc.replace('http://','https://'); 
} 
if(window.retry>=3){ 
    alert('We are sorry, but your client does NOT support SSL(Https)protocol.'); 
    alert("This Website Can Not Be Loaded, Your Browser Is Out Of Date!!!"); 
    window.location.replace("https://gamingwiththecrew.com/outofdate.html"); 
} 

</script>