动易SiteFactory的自定义URL重写功能

作者:rhongsheng 来源:动易论坛 点击数: 发布时间:2008年07月17日

    URL重写就是首先获得一个进入的URL请求然后把它重新写成网站可以处理的另一个URL的过程。举个例子来说,如果通过浏览器进来的URL是“”,那么它可以被重写成 “”这样的URL,这样的网址可以更好的被网站所阅读和索引收录,通常人们称呼为伪静态。

    重写URL是非常有用的一个功能,因为它可以让你提高搜索引擎阅读和索引你的网站的能力;而且在你改变了自己的网站结构后,无需要求用户修改他们的书签,无需其他网站修改它们的友情链接;它还可以提高你的网站的安全性;而且通常会让你的网站更加便于使用和更专业。

    动易SiteFactory中默认已经自带了此功能而不需要服务器安装组件,例如/item/1.aspx和/Category_1/index.aspx这样的URL都是一个伪静态的URL,他们实际的URL是/item.aspx?id=1和Category.aspx?id=1

长久以来,我都以为SiteFactory此功能是固化于组件之中,通过研究发现,我们不仅可以修改系统的URL规则,更能把系统的一些动态URL静态化!

   下面我通过修改文章作者和来源的URL来演示

    /Common/ShowAuthor.aspx?authorname=%e4%bd%9c%e8%80%85    作者的URL

    /Common/ShowCopyFrom.aspx?copyfrom=%e6%9d%a5%e6%ba%90    来源的URL

    现在我们就通过SiteFactory的伪静态功能来将URL修改为:

    /Author/%e4%bd%9c%e8%80%85.aspx        作者的URL

    /CopyFrom/%e6%9d%a5%e6%ba%90.aspx        来源的URL

    第一步,我们打开程序根目录下载Config文件夹,找到UrlRewriteSettings.config文件

    第二步,添加一个新的规则,

          


    这个规则是通过正则来取得一个URL的某一段字符串,然后赋予动态的URL,(.*)是通配所有字符,而$1是第一个位置的字符串,如果有多个,用$1、$2、$3来区别
    然后保存文件,这个时候我们访问/Author/%e4%bd%9c%e8%80%85.aspx这个URL的时候,已经能正常解析了

    第三步,修改模板,虽然已经能正常访问了,但是我们模板中的链接依然是动态的,所以我们需要修改一下,
    找到作者链接:

{PE.SiteConfig.ApplicationPath/}Common/ShowAuthor.aspx?authorname={PE.Field id="cone" fieldname="LinkAuthor" /}

    修改为:

{PE.SiteConfig.ApplicationPath/}Author/{PE.Field id="cone" fieldname="LinkAuthor" /}.aspx

    找到来源链接:
{PE.SiteConfig.ApplicationPath/}Common/ShowCopyFrom.aspx?copyfrom={PE.Field id="cone" fieldname="LinkCopyFrom" /}
    修改为:
{PE.SiteConfig.ApplicationPath/}CopyFrom/{PE.Field id="cone" fieldname="LinkCopyFrom" /}.aspx

    然后保存模板,前台看看效果吧!

    演示地址:

   

   

    灵活运用,搜索结果静态化:

 

 

 

    论坛地址: