111111
精灵王
精灵王
  • 注册日期2010-12-08
  • 发帖数640
  • QQ
  • 火币1103枚
  • 粉丝120
  • 关注75
  • 社区明星
阅读:4948回复:0

asp用server.transfer实现博客永久链接_asp技巧

楼主#
更多 发布于:2010-12-26 16:06
 在许多博客日志阅读页面里的尾部都能看到一个永久链接,这个链接一般是持久在在的,即使博客程式换了,也能用这个链接来访问原来的日志,而不会出现未找到页面的情况,这对于一个博客的确是个比较实用的功能。
  在修改blog程式时,也考虑了这个问题,决定也给博客日志加上永久链接功能。
  IIS6中如果请求一个目录后面跟上参数时,会把这个参数传给默认文件,即如果请求我的博客首页http://www.xujiwei.cn/blog/?id=500,那么id=500将会传递给默认文件default.asp。利用这点就能实现博客日志的永久链接了。当然了,这个永久链接是建立在博客目录不改动的情况下,如果目录改了,就需要另外处理了。
  在ASP中能利用Response.Redirect,其原理是服务器向客户端发送一个302 Object Moved的响应,然后客户端根据响应进行转向,但这个会增加额外的带宽开销,并且不利用搜索引擎收录,所以推荐使用Server.Transfer来转向。Server.Transfer则是直接停止当前脚本的执行,转而执行指定的脚本,并且当前的一些变量如会话等均可在新脚本里直接使用,而毋须再重新进行参数传递了,而Response.Redirect则不能。
  两种方法的另外一个比较明显的差别就是使用Response.Redirect客户端显示的URL会改动,而Server.Transfer则不会,使用Server.Transfer时客户端不会感到当前URL其实已改动。其实这个差别也能通过两种方法的调用方法来看出来,一个是Response.Redirect由客户端做出改动,而Server.Transfer则是由服务端做出改动。
  了解了这些就能开始做了,打开博客的默认文件,一般就是博客程式的首页,如default.asp、index.asp等,然后在其有输出内容之前加上以下代码:
  
  当然了,article.asp是要根据博客程式来做相应改动的,id即为要做为永久链接时的参数,需要注意这个参数必须为article.asp所能识别的,即article.asp能根据这个参数来显示日志,如果不行的话就要做相应的改动,即把article.asp中的参数名称改为id,或把id改成其他名称。

  ok,完成!其实这个东西是非常简单的,这么大篇幅大都是废话,真正有用的就那么一句代码。



喜欢0 评分0
游客

返回顶部