重定向的概念及目的
当点击一个URL来访问一个网页x,但在内部你背定向到另一页Y,仅仅是因为页面重定向。这一概念是从不用于JavaScript页面刷新,可能有各种原因,为什么想从原来的页面重定向,原因如下:
1)如果不喜欢现有的域名,可以重定向到一个新的。同时,要引导所有访问者到新网站。在这种情况下,可以保持旧的域名,但放在一个页面到一个页面重定向使所有的旧域名游客可以来到新的域名
2)基于浏览器的版本,或者名字不同的页面,也可以根据不同的国家,而不是服务器端网页重定向,可以使用客户端页面重定向到登录用户在相应的页面。
3)搜索引擎可能已经收录新页面,不过,在移动到另一个域名,那么不喜欢失去访客通过搜索引擎来了。所以,可以使用客户端页面的重定向。但是。这不应该做的,使搜索引擎傻瓜,否则,这可能让网站取缔。
如何实现重定位
示例1:
这使用JavaScript在客户端页面的重定向是非常简单的,网站访问者重定位到一个新的页面,只需要添加在head部分加一行如下:
<head>
<script type="text/javascript">
<!-- window.location="http://www.newlocation.com" -->
</script>
</head>
示例2:
可以将其重定位到一个新的页面之前显示相应的信息给网站访客,这将需要一个位时间延迟加载新页。以下是简单的例子来实现相同的:
<head>
<script type="text/javascript">
<!-- function Redirect() {
window.location = "http://www.newlocation.com";
}
document.write("You will be redirected to main page in 10 sec.");
setTimeout("Redirect()",10000);
-->
</script>
</head>
这里的setTimeout()是一个内置的JavaScript函数,可用于给定的时间间隔之后执行另一个函数。
示例3: 以下是例子是重定向基于其浏览器不同的网页访问者:
<head>
<script>
<!--
var browsername = navigation.appName;
if(browsername == "Netscape") {
window.location="http://www.location.com/ns.html";
} else if(browsername =="Microsoft Internet Explorer") {
window.location ="http://www.location.com/ie.html";
} else{
window.location = "http://www.location.com/other.html";
}
-->
</script>
</head>
常用JavaScript重定位跳转方法:
第一种:
代码如下:
<script language = "javascript" type="text/javascript">
window.location.href = "http://shanghepinpai.com";
</script>
第二种:
代码如下:
<script language="javascript">
alert("返回");
window.history.back(-1);
</script>
第三种:
代码如下:
<script language="javascript">
window.navigate("http://shanghepinpai.com");
</script>
第四种:
代码如下:
<script language="javascript">
self.navigate("http://shanghepinpai.com");
</script>
第五种:
代码如下:
<script language="javascript">
alert("非法访问!");
top.location = "http://shanghepinpai.com"
</script>
javascript实现强制重定向值HTTPS页面
有时候需要网页强制切换成HTTPS,即使用户已经访问了HTTP版本,原因可能是你不想让用户使用http来访问,因为他不安全,要做到这个很简单呢,如果不想用PHP或者Apache的mod_rewrite来做这件事,用JavaScript也是可以的。代码如下:
<script type="text/javascript">
var targetProtocol = "https";
if(window.location.protocol != targetProtocol) {
window.location.href = targetProtocol +
window.location.href.substring(window.location.protocol.length);
}
</script>