URLRewriter最简单入门介绍 URLRewriter相关资源

  1. URLRewriter 相关资源:

  http://download.microsoft.com/download/0/4/6/0463611e-a3f9-490d-a08c-877a83b797cf/MSDNURLRewriting.msi

  http://msdn.microsoft.com/zh-cn/library/ms972974.aspx

  http://blog.csdn.net/chenghp/archive/2007/04/10/1559212.aspx

  2. URLRewriter 二级域名的实现:

  http://www.cnblogs.com/jzywh/archive/2006/02/20/seconddomainurlrewriter.html

  http://www.cnblogs.com/jzywh/archive/2005/09/29/246650.html

  3. 适用场合 IIS相关配置:

  配置好后,查看日志看到的状态都是200,IIS直接认为这个文件是存在的了,

  而不是301,或302,这在某些情况下可能会不适用,比如:搜索引擎优化时目录或文件调整。

  默认只支持.net格式的重定向 比如:.aspx格式的重定向。

  如:show_12_yongfa365.aspx  --> show.aspx?id=12&name=yonga365

  如果想实现,*.html这样的格式(一般我们就用这种方法实现.net 伪静态)

  如:show_12_yongfa365.html  --> show.aspx?id=12&name=yonga365

  得在站点里加上相关“应用程序扩展”

  添加方法:右击相关站点-->属性-->主目录-->配置-->映射-->

  在里面找到扩展名是.aspx的记录,双击,复制里面的可执行文件里的内容,关闭

  回到了应用程序配置里,点添加,粘贴刚才复制的地址,扩展名里输入".html",把“确认文件是否存在”的勾去掉。

  OK,IIS上相关配置就配好了。

  4.下载相关文件:

  请从此下载UrlRewriter组件。安装,把安装目录下里的 UrlRewriter.dll copy 到你的项目 bin 目录下。

  5.配置 Web.config

  在<configuration>标签里加上:

    <configSections>

  <section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />

  </configSections>

    <!--URLRewriter重写规则,不会正则表达式的到网上找找,柳永法当时在车上两小时看完相关文档,感觉就看会了。-->

  <RewriterConfig>

  <Rules>

  <RewriterRule>

  <LookFor>~/(\d+).aspx</LookFor>

  <SendTo>~/Default.aspx?page=$1</SendTo>

  </RewriterRule>

  </Rules>

  </RewriterConfig>

  在<system.web>标签里加上:

      <httpModules>

  <add type="URLRewriter.ModuleRewriter, URLRewriter" name="ModuleRewriter" />

  </httpModules>

  <!--

  <httpHandlers>

  <add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />

  <add verb="*" path="*.html" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />

  </httpHandlers>

  -->

  6. 加入窗体回传保持的组件:

  如果你的页面有回传。比如说放了DataGrid 或 GridView等,有分页的会出问题,解决方法:

  在原来你下载的项目里找到 ActionlessForm.dll 放到你的项目 bin 目录下。

  然后在你的这个页面中加入:

  <%@ Register TagPrefix="skm" Namespace="ActionlessForm" Assembly="ActionlessForm" %>

  再把你的<Form...>改为:

  <skm:Form id="你的表单名" method="post" runat="server">

  .....

  </skm:Form>