加入收藏 | 设为首页 | 会员中心 | 我要投稿 佛山站长网 (https://www.0757zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > Asp教程 > 正文

EasyASP v2.2新功能介绍(2):用Easp实现伪URL Rewrite

发布时间:2016-10-08 21:26:12 所属栏目:Asp教程 来源:网络整理
导读:前一篇日志介绍了EasyASP v2.2是 如何实现防sql注入的 ,看来还是有很 多人对这个年代还使用ASP报以嗤之以鼻的态度。在此还是要劝导一下,如果你 认为ASP是上个

由于是模仿Rewrite,所以这里有个特殊的条件,就是只能在当前页进行URL 的映射,比如你不能把/main.asp?list-45.html映射到/single.asp? t=$1&id=$2上。所以,推荐使用Easp.Rewrite来进行设置。

对于具体的使用方法,我们来看下面一段示例代码:

'设置重写规则
   Easp.RewriteRule "/blog.asp?(w+)/(d{4})/(d{2})/(d+) .html", "/blog.asp?username=$1&year=$2&month=$3&id=$4"   
   Easp.Rewrite "/|/index.asp", "(blog|photo|news)(-(d+))? .html", "type=$1&page=$3"

'设置重写规则
Easp.RewriteRule "/blog.asp?(w+)/(d{4})/(d{2})/(d+).html",  "/blog.asp?username=$1&year=$2&month=$3&id=$4" 
Easp.Rewrite "/|/index.asp", "(blog|photo|news)(-(d+))?.html",  "type=$1&page=$3"

在设置了以上的规则之后,如果在浏览器里输入:

http://www.ambox.cn/blog.asp?testuser/2010/01/12345.html

效果将等同于:

http://www.ambox.cn/blog.asp? username=$1&year=2010&month=01&id=12345

这意味着你仍然可以使用 Easp.Get("username") 来获取username参数的值 。同样的,你输入 /?photo-3.html ,也同样可以使用 Easp.Get("type") 来取 得 "photo",用Easp.Get("page")来取得 "3"。采用这样的方式之后,对于开发 者来讲就完全没有任何负担,你不需要做任何特殊的设置,即使你对重写正则不 了解,在规则不生效的情况下你仍然可以通过传统的用 & 连接url参数的方 式访问页面而不会产生任何程序错误。

3、EasyASP对伪URL Rewrite的补充方法

为了配合Easp的伪Rewrite,Easp还有两个方法可以减少开发者在使用伪 Rewrite时编写更多的代码。

第一个方法是:

Easp.IsRewrite

这个方法可以判断当前页面访问的地址是否是已经生效的URL重写后的地址, 返回一个布尔值。

第二个方法是:

Easp.ReplaceUrl param, value

这个方法可以替换当前页URL参数中的某个值,并返回一个新的URL,比如还 是用刚才的例子,用下面的地址访问:

http://www.ambox.cn/blog.asp? username=$1&year=2010&month=01&id=12345

那么,使用这个方法可以得到下面的结果

Dim newUrl
   newUrl = Easp.ReplaceUrl("id","98765")
   '返回 /blog.asp? username=$1&year=2010&month=01&id=98765

Dim newUrl
newUrl = Easp.ReplaceUrl("id","98765")
'返回 /blog.asp? username=$1&year=2010&month=01&id=98765

而用这个地址:

http://www.ambox.cn/blog.asp?testuser/2010/01/12345.html

则会返回替换后的URL重写地址

Dim newUrl
   newUrl = Easp.ReplaceUrl("id","98765")
   '返回 /blog.asp?testuser/2010/01/98765.html

Dim newUrl
newUrl = Easp.ReplaceUrl("id","98765")
'返回 /blog.asp?testuser/2010/01/98765.html

Easp的分页中就使用了这个方法,所以在你使用Easp的URL重写后分页链接中 也能准确的链接至重写后的URL地址,而使用传统的URL Rewrite组件的话,这个 链接的地址是需要你自己去分析和重新拼接的。

4、小结

使用伪url重写到底有什么好处呢? 首先我可以肯定的是,对SEO是有帮助 的,这个从华夏智慧网那里已经得到了印证(我和他们的开发人员深入的聊过这 个问题);其次,正则中的参数匹配更严格,可以更安全的控制URL参数,比如 在(d+)的URL规则中,输入 ' 等注入带注入特征的符号肯定是不被正常解析的 。EasyASP提供的这种看似简陋的伪重写模式,我相信还是有用武之地的,比如 网友 智者千虑 基于 Easp v2.2 开发的 http://www.114msn.com ,其中就大 量的用到了 Easp.Rewrite。

Easp v2.2的更多功能,期待你的挖掘。

(编辑:佛山站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读