使用URLRewriter让你的站点牛逼起来- -!

    之前有个网页提醒我用一下URLRewriter.dll给自己的博客做一下伪静态化,据说是可以提高SEO,今天试了一下这个组件,果然好用,至于对SEO有没有帮助就不得而知了(我一直觉得最好的SEO是¥......)


    URLRewriter使用起来很简单,只需要通过简单的配置就ok了,大致的步骤如下:
    1、把组件拿过来然后引用到项目里面去,组件的下载地址在这里:传送门......传过去会看到一个超链接可以点击,点下去后下载一个msi文件,安装吧少年!!!
    2、把URLRewriter.dll应用到项目中,然后对Web.config进行必要的配置:
   

(1)找到configuration节点中的configSections节点(如果没有的话就自己打进去 - -!),在configSections节点中添加一个section节点,效果如下:

section节点的配置
1
2
3
4
5
<configuration>
    <configSections>
        <section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter"/>
    </configSections>
</configuration>

    

(2)从第一个节点的配置来看,如果知道configSections的作用的同学肯定知道需要有一个RewriterConfig节点了,这个节点的配置大致如下(写在configSections节点中):

RewriterConfig节点的配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<configuration>
  <RewriterConfig>
    <Rules>
      <RewriterRule>
        <LookFor>~/articles/(.[0-9]*)\.html</LookFor>
        <SendTo>~/Default.aspx?id=$1</SendTo>
      </RewriterRule>
      <RewriterRule>
        <LookFor>~/(.[0-9]*)\.html</LookFor>
        <SendTo>~/Default.aspx?id=$1</SendTo>
      </RewriterRule>
    </Rules>
  </RewriterConfig>
</configuration>

   

(3)配置httpHandlers,就是在httpHandlers节点中添加我们所需要的add节点,从上面的节点可以猜出我们需要配置一个用于处理html后缀名的东东,如下:

添加httpHandlers的add节点
1
2
3
4
5
6
7
<configuration>
  <system.web>
    <httpHandlers>
      <add verb="*" path="*.html" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
    </httpHandlers>
  </system.web>
</configuration>

 

    进过上面三步的配置,我们就可以开始使用URLRewriter了,在我们的站点根目录中创建一个名为Default.aspx的页面,当我们在浏览器的地址栏输入访问http://localhost:3550/123.html这个地址的时候(当然端口不一定一样- -!),其实是访问了http://localhost:3550/default.aspx?id=123这个地址,在这里URLRewriter的作用相当明显了^_^。


    3、如果部署到到服务器上这个访问往往会失败,这里找了一张图,说明一下怎么配置iis(在2003上面部署过mvc的人,你懂的···)


    之所以要这样配置主要原因是,我们访问的虽然是html后缀名的页面,但始终是“伪静态”,也就是说还是需要aspnet_isapi.dll映射来处理请求,以为实际上我们访问的是aspx页面(不知道这样说和不合理- -!)。另外,这个.html页面实际上是不存在的,所以要把“确认文件是否存在”的勾去掉!


    4、到此为止一切正常,但是如果页面上有回传的话,会发现回传回来后伪静态的效果木有了。例如页面上有个服务器端的Button控件,点击后发现伪静态的效果不见了,解决方案是使用ActionlessForm.dll,这个dll里面又一个叫做ActionlessForm的类,其实是继承了Form类的一个子类。使用方法大致如下:    

(1)在页面上注册这个东东,<%@ Register TagPrefix="acf" Namespace="ActionlessForm" Assembly="ActionlessForm" %>    

(2)把form改成这个ActionlessForm,<acf:Form ID="form1" runat="server">    

(3)木有了...


    PS:这个组件我自己很少用,因为主要是做web系统,这些东西基本用不上了,不过自己尝试使用了一下,发现还是学到不少东西。一方面是多知道了一个比较常用的组件的使用方法,另一方面是在使用的过程中通过查资料,对Web.config又有了进一步的了解^_^。本博客的文章页面就是用了这个组件实现伪静态。这里是我测试的使用写的代码,两个dll在里面也可以找到哈,点击下载

posted @ 2012-07-13 11:25  serafin  阅读(564)  评论(0编辑  收藏  举报