首页 美女贴图 网络日记 重庆租房 搜索指南 网络电视 飘网音乐 飘网博客 精彩网址 友情链接 飘网地图 本站留言
飘网中国
专题:网络营销 | 网站设计 | QQ技巧 | 搜索优化 | 菜鸟进阶 | 病毒攻防 | 网络技术 | 系统应用 | 本站作品 | 常用软件 | 工具软件 |
飘网中国>>网站设计>>正文

用静态URL显示动态网页

编辑: 来源: 更新:2006-6-4 点击:
【字体:

摘要:静态页面名字除了具有含义更明确这一优点之外,它的另外一个优点在于搜索引擎能够索引这些页面。大多数搜索引擎,如Alta Vista和Yahoo,不会检索URL中带有问号的页面,因为它们担心进入永无止境的链接迷宫。
关键字:
正文:
动态生成的网页在构造真正大型的网站时是不可缺少的。但是,动态页面的名字(即它的URL)往往缺乏明确的含义。例如,名为product.asp?Id=4的页面总不如名为/applicances/dishwashers/Model3809.htm的页面来得好记。本文介绍如何实现静态页面名字和动态页面的映射。 
概述 
静态页面名字除了具有含义更明确这一优点之外,它的另外一个优点在于搜索引擎能够索引这些页面。大多数搜索引擎,如Alta Vista和Yahoo,不会检索URL中带有问号的页面,因为它们担心进入永无止境的链接迷宫。把动态页面名字转换成静态页面名字之后,搜索引擎就会对这些页面进行索引和分类,从而为网站带来更多的访问量。 
要使用本文介绍的方法将动态名字转换成静态名字,你必须使用Windows 2000和IIS 5.0。IIS 5.0的两个改进使得我们可以实现这种转换,它们是:使用Server.Transfer的“自定义错误信息”功能以及在ASP页面中使用Server.Transfer的能力。虽然IIS 4.0也支持自定义错误信息,但它使用的是Response.Redirect,没有用,所以本文方法要求使用IIS 5.0。Response.Redirect之所以没有用,是因为搜索引擎不会追随重定向。 
使用本文所介绍的方法,网站开发者先用静态风格的URL链接事实上并不存在的页面。然后设置IIS服务器,告诉它要用指定的ASP页面(404.asp)来处理网站上出现的所有404错误。在这个404.asp页面里,把原来的URL转换成正式的动态URL,利用Server.Transfer执行并向用户浏览器返回目标页面。 
假设有如下URL: 
http://www.myserver.com/applicances/dishwashers/kenmore/Model3809.htm 
其中myserver.com以网站的域名取代,该URL将返回404错误。我们首先要做的是用某个专用的.asp页面来处理所有这些404错误。这可以用IIS 5.0的“自定义错误信息”功能来实现。设置该功能的过程如下: 
●在MMC中打开IIS服务器管理器 
●右击Web网站节点,然后选择“属性” 
●点击“自定义错误信息”页 
●向下滚动,直至找到404错误 
●双击404错误,打开“错误映射属性”对话框 
●将消息类型改为URL 
●在URL框输入“/404.asp” 
●点击“确定”关闭窗口 
现在404错误已经由404.asp处理了。当IIS调用404.asp页面时,它会提供导致这个404错误的URL,这对我们来说是非常有用的。 
错误处理页面 
接下来我们创建处理错误的404.asp页面。首先要做的是获得导致这个404错误的页面名字。下面这行代码从查询字符串提取这个页面的名字: 
< % 
获得页面名字 
strQ = Request.ServerVariables("QUERY_STRING") 
% > 
那么,strQ中的哪些内容才是重要的呢?在上例中它应该如下所示:/applicances/dishwashers/kenmore/Model3809.htm。我们真正需要的只有其中的Model3809(产品型号),因为这是产品数据库中的唯一键。下面这几行代码根据产品型号找出产品的ID(编号): 
< % 
 计算产品型号 
nIndex = InStrRev(strQ,"/") 
If (nIndex >0) Then 
strModelNumber = Right(strQ,Len(strQ)-nIndex) 
strQ = Left(strQ,nIndex-1) 
End If 
 
 从产品型号去掉.htm后缀 
If ((Mid(strPageName,Len(strPageName),1)="m") And _ 
(Mid(strPageName,Len(strPageName)-1,1)="t") And _ 
(Mid(strPageName,Len(strPageName)-2,1)="h") And _ 
(Mid(strPageName,(strPageName)-3,1)=".")) Then 
 
strModelNumber =Left(strPageName,Len(strModelNumber)-4) 
 
End If 
 
 从产品数据库查找产品编号 
strSQL = "SELECT Product_Id FROM Product " _ 
& "WHERE Product_Model = " & strModelNu
[1][2]
上一篇:网络编程:网络蜘蛛的秘密
下一篇:关于Cookie跨域操作遇到的问题及解决方法
最新文章 更多
推荐文章 更多
热门文章 更多
© 2005-2010 飘网中国 版权所有
站长邮箱:①LCC-749AT163.com ②FlymornATgmail.com(AT改为@)
如转载时,请注明出处;本站部分资源来自网络,如有侵权,请来信说明;飘易文章系统 HTML版.
渝ICP备05000119号