www.yarluo.cn

包括内页在内的全站301重定向

  丫露空间使用301重定向的起因还是前段时间有人留言,说有建筑图集不能下载,经检查原来是这位朋友进了http://yarluo.cn域名。而丫露空间做为独立的个人博客,文件下载使用的是华为网盘的直链下载,域名绑定的是http://www.yarluo.cn/,所以从http://yarluo.cn进入是无法进行下载的。虽然之后对华为直链绑扎进行了修改,下载的问题解决了。但个别页面从yarluo.cn进入与从www.yarluo.cn进入排版还是有区别的。网站调整主域名为www.yarluo.cn,所以就有了将yarluo.cn并入www.yarluo.cn的想法,而301重定向也就让丫露空间实现了这个想法。
  从网上搜索的方法要么就是写的太简单,要么就是只能实现首页重定向,内页只会直接转到重定向后的首页。而丫露空间整理出来的方法能实现首页和内页的重定向,也就是全站的重定向,且地址栏内的内容显示也符合大众习惯。下面进入正题。
一、什么是301重定向
  首先说一下什么是301重定向,百度百科是这样解释的:页面永久性移走(301重定向)是一种非常重要的“自动转向”技术。网址重定向最为可行的一种办法。当用户或搜索引擎向网站服务器发出浏览请求时,服务器返回的HTTP数据流中头信息(header)中的状态码的一种,表示本网页永久性转移到另一个地址。
二、什么时候用301重定向
  那么都在什么情况下需要用到301重定向呢?在以下的情况下你也许会用到:
  1、网页的原url地址找不到,或者网站改版旧域名与新域名不同,但是内容相同如果不重定向 搜索引擎会重复收录数据,这样会被认为作弊,如果使用重定向把旧域名转向新域名这样数据不会重复收录,对seo有利。
  2、带www的域名和不带www的域名是同一个网站,为了确保流量流失,我们会选择使用301重定向。为了不使主域名权重分散我们使用301重定向,把副域名指向主域名。
  3、为便于网站排版及文件链接管理。带www的域名和不带www的域名在浏览时网站排版有时会出现错误,影响美观。有此链接也因域名的不同而出错。
  丫露空间做301重定向的原因就是因为第3种。
三、301重定向都有什么方法
  实现301重定向的方法很多,主要有以下几种:
  1、IIS 服务器实现301重定向。
  2、Apache服务器实现301重定向。
  3、htaccess文件中增加301重定向指令实1现重定向。
  4、用服务器软件的系统管理实现301重定向。
  5、绑定/本地DNS实现301重定向。
  6、用ASP/PHP实现301重定向。
  大家可以根据自己的情况来选择使用何种方法实现。丫露空间租用的是虚拟主机,用Z-blog建站,所以用的是第6种方法。如果你选择的是其它方法,那就不用再往下看了。网上有很多教程,丫露空间没有实践,就不多介绍了。这里主要讲的就是用ASP实现301重定向的方法。
四、ASP代码实现301重定向的步骤
  网上介绍的ASP实现301重定向的方法说的很简单,包括卢松松博客上介绍的也只是三行代码:

Response.Status="301 Moved Permanently"
Response.AddHeader "Location","http://lusongsong.com/"
Response.End

  这三行代码说的很简单,懂了就是懂了,不懂的还是不懂。如果你将这三行代码加入页面,只是能实现首页重定向,对内页及全站来说是无法实现重定向的。
  下面就以丫露空间为例和大家说说ASP代码实现301重定向的实现。
  在需进行重定向的页面加入以下代码,代码最好是放在各个页面都调用的模块文件中,这样加入和修改都比较方便。丫露空间以Z-Blog2.2建站,代码就放在c_option.asp文件中了。
  代码如下:

Dim url
Dim Num
If request.ServerVariables("HTTP_HOST")<>"www.yarluo.cn" Then 
If Request.ServerVariables("Script_Name")<>"" Then 
Num=Len(Request.ServerVariables("Script_Name"))-11
If right(Request.ServerVariables("Script_Name"),11)<>"default.asp" Then
url = "http://www.yarluo.cn"&Request.ServerVariables("Script_Name")&"?"&Request.ServerVariables("Query_String")
Else
url = "http://www.yarluo.cn"&left(Request.ServerVariables("Script_Name"),Num)
End If
Response.Status="301 Moved Permanently" 
Response.AddHeader "Location",url
Response.End 
Else 
Response.Status="301 Moved Permanently" 
Response.AddHeader "Location","http://www.yarluo.cn/" 
Response.End 
End If 
End If

  以内页地址为http://www.yarluo.cn/view.asp?di=123为例,Request.ServerVariables("Script_Name")返回的值为:view.asp,Request.ServerVariables("Query_String")返回的值为:id=123。
  上述代码实现了如下效果:
  1、输入http://yarluo.cn时重定向至http://www.yarluo.cn/,在地址栏显示http://www.yarluo.cn/,而非显示http://www.yarluo.cn/default.asp。
  2、输入http://yarluo.cn/post/123.html时重定向至http://www.yarluo.cn/view.asp?id=123,即http://www.yarluo.cn/post/123.html页面,因设置了全局伪静态,所以重定向后地址栏显示为动态地址。
五、丫露空间301重定向效果展示
  点击下列链接查看效果:
  1、http://yarluo.cn
  2、http://yarluo.cn/post/123.html
六、301重定向检测
  只要在网络上搜索301重定向检测,就会有很多结果。我用的是百度网页应用,检测结果如下图所示:


  毕竟学的是建筑,不是IT。效果是鼓捣着实现了,但代码肯定不是最优的,如果代码哪里有写的不对或是还有更加优化更加简短的代码,还请留言告诉我,也让我进一步学习学习!

标签: 教程 网络 | 分类:※网络技巧※| 发布:yarluo| 查看:964人次 | 发表时间:2014年09月04日
原创文章如转载,请注明:转载自丫露空间 http://www.yarluo.cn/post/296.html
1楼:yarluo【回复】
于2014-09-06 17:49:49发表了回复了此评论。
没有多难吧!
2楼:秘方【回复】
于2014-09-05 17:46:20发表了回复了此评论。
真正实现起来还真难。
2楼:yarluo【回复】
于2014-09-06 17:49:49发表了回复了此评论。
没有多难吧!
3楼:萌嘟嘟【回复】
于2014-09-05 08:54:43发表了回复了此评论。
学习了,你也用了图+啊,可惜我博客没多少图

已经有 ( 3 ) 位网友发表了评论,你也评一评吧!