动易SiteFactory的自定义URL重写功能
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 |
然后保存模板,前台看看效果吧!
演示地址:
灵活运用,搜索结果静态化:
论坛地址: