网络编程
位置:首页>> 网络编程>> Asp编程>> ASP实现全站的301跳转

ASP实现全站的301跳转

作者:草上飞 来源:草上飞blog 发布时间:2010-03-27 21:45:00 

标签:301跳转,asp

更换域名,估计是很多站长都很头疼的事情。通常大家的做法就是把老的域名通过IIS设置做301跳转到新的域名。对于只有一个虚拟空间的站长来说,换域名更是头疼,没有多余的空间来绑定老的域名,只能放弃老的域名被搜索引擎收录的数据。

通过IIS设置的301跳转会有一个问题,以前被搜索引擎收录的文章怎么办?用户如果通过搜索引擎搜索到老的页面,点进去后,确是一个找不到的页面,或者是跳转到一个首页。这样的话,就没办法让用户进入他想要进的页面,从而会造成网站用户的流失。

本文讲述怎么通过ASP代码来实现全站的301跳转,因为要用ASP来实现,所以只能针对网站里面的所有ASP文件来做301跳转。通过本代码,可以实现list.asp?id=xxxx这种形式的跳转。
对于HTML页面静态页面,还没法实现全站的301跳转。

因本站的http://indexed.linkhelper.cn前面的indexed有点长,不太好记,于是把域名更换为,但是这个子域名下已经有很多页面被百度、google收录。本文就通过几行简单的代码把http://indexed.linkhelper.cn全站301跳转到http://i.linkhelper.cn相对应的页面。

下面来看看代码的具体实现:

通常对于一个网站来说,每个ASP页面都会包含同一个文件。有conn.asp,或者是函数库function.asp。所以,我们直接在公用文件中进行实现,从而实现全站301跳转。

本站包含文件为:function.asp。

所以我在function.asp最上端加了如下代码(注意:下面代码只能加在ASP文件代码中的最上面。):

<%
currentdomain= request.ServerVariables("SERVER_NAME") '获取地址栏中当前的域名。
currenturl=request.ServerVariables("url") '获取地址栏中的域名后的ASP文件名。
currentrequest=request.ServerVariables("QUERY_STRING") '获取地址栏中?后面的参数
'如果你当前浏览的是老的PR查询地址http://indexed.linkhelper.cn/querypr.asp?url=www.newbooks.com.cn|www.linkhelper.cn。则获得的currentdomain为indexed.linkhelper.cn
currenturl为/querypr.asp ,currentrequest为url=www.newbooks.com.cn|www.linkhelper.cn
If currentdomain="indexed.linkhelper.cn" Then '因为i.linkhelper.cn和indexed.linkhelper.cn是公用所有文件。所以这里加个判定,只有当当前浏览的域名是indexed.linkhelper.cn的时候才做301跳转,只有才能实现就算是公用文件,一个空间绑定多个域名,实现老域名跳转到新的域名。

 moveurl="http://i.linkhelper.cn"&currenturl   '重新组合为http://i.linkhelper.cn/querypr.asp

 If currentrequest<>"" Then
  moveurl=moveurl&"?"&currentrequest  '因为还有参数,所以将参数也组合到新的跳转地址中去。
 End if
 '跳转。
 Response.Status="301 Moved Permanently"  '以下两句实现301永久性跳转
 Response.AddHeader "Location",moveurl
End if
%>

0
投稿

猜你喜欢

  • 问题:如果一个网站拥有两个域名:domain1.com和domain2.com。在网站运营前期,主推domain1.com,但发展到中期,由
  • 使用css2.1实现多重背景、多重边框效果在单个HTML元素上利用CSS2.1实现拥有3张背景图片和2张内容图效果,或者多重边框的效果。这种
  • 或者说有一条命令 hostname [string],当string是不包含2950时,是true,包含2950时是false。使用Exce
  • 本文讨论 MySQL 的备份和恢复机制,以及如何维护数据表,包括最主要的两种表类型:MyISAM 和 Innodb,文中设计的 MySQL
  • 由于某些原因需要把函数直接放到 img 标签上的 onload 属性执行,比如:For some reasons we have to ex
  • 假如页面上有很多条记录,很多情况下,对这些信息按照字母表降序排序会比传统的升序排序显示效率更高。采用你熟悉的ORDER BY 子句,你可以很
  • 一、INSERT和REPLACEINSERT和REPLACE语句的功能都是向表中插入新的数据。这两条语句的语法类似。它们的主要区别是如何处理
  • 注:本文所说的视觉设计师专指网页视觉设计师。网页设计师与平面设计师都归类为设计师,其实这两个职业是跨行业的,虽然有很多设计师一直在跨行业工作
  • 类:在HTML中当表现class属性的时候,人们可以用点(.)号来作为~=号的一个替代选择,所以div.value等同于div[class~
  • 这个程序将记数器的数字放在ACCESS数据库中,当然你也能用你希望其它的ODBC数据源.这个程序从URL中读取记数信息.如下:< IM
  •   继续Mootools常用方法扩展,依然还是String类的扩展。方法:format说明:一个非常简单的format方法,和C#
  • 本文整理了3种鼠标经过图片,图片边框加粗或改变颜色的方法,希望大家喜欢。下面3中只是提供了一个方法,具体的鼠标经过图片的样式,你自己可以修改
  • 数据类型是所有开发语言的基础,JavaScript虽然是一个弱类型的脚本语言,但是在数据类型上也有很多讲究的,看了淘宝UED玉伯的一篇文章,
  • 深藏多年秘笈大公开,全世界唯一一家公布,怎么点就是点不出,纯CSS去掉按钮或者链接点击产生的虚线。运行代码框<style type=&
  • 熟悉SQL的人都知道,完成同一个任务,SQL可能有多种写法,但不同写法的查询性能可能会有天壤之别,本文列举出五个查询优化的方法,当然,优化的
  • 在IE比较简单,大家都知道用setHomePage来设置,懒人写法:<a href="#setHomePage"
  • 中文字体设计发展到现在,风格越来越多样化,特别是在广告(美术)字体方面,因为字数少 局限小,优秀的作品层出不穷,比较突出的应用在标志设计唱片
  • SQLSTATESQL SERVER 驱动程序错误描述 HY000所有绑定列都是只读的。必须是可升级的列,以使用 SQLSetPos 或 S
  • 在上一篇文章中,简单介绍了下闭包(closure)和原型链,现在继续来研究闭包的内部机制。对了,所有的东西都参考自这篇文章:Javascri
  • 代码如下:<% Rem xml缓存类 '----------------------------
手机版 网络编程 asp之家 www.aspxhome.com