如题:
一般在后端有三种方式获取。
1,JAVA截取链接地址。
String URL = request.getRequestURL().toString();
if(!URL.startsWith("https:"))
{
System.out.println("HTTPS");
}
2,JAVA获取协议
if("http".equals(request.getScheme()))
System.out.println("HTTP");
if("https".equals(request.getScheme()))
System.out.println("HTTPS");
3,JS获取协议
if("https:" == document.location.protocol)
alert("HTTPS");
以上方法一般情况下都是管用的。不过有些受到服务器环境的影响,比如负载均衡、多重转发。这样上面的方法就不管用了,这时候url链接和协议已经不是那么规则了。
之前遇到一个需求就是把某个页面限定是http的,尝试上面三种判断后无效,故选择在vm里面进行判断。如下:
script type="text/javascript">
if( location.href.indexOf("https") > -1 ){
location.href = "http://"+ location.hostname +"/XXXX.htm";
}