C# .Net实现Url地址重写(伪静态)的方法

发布时间:2019-08-12编辑:脚本学堂
本文介绍下,C#实现Url地址重写,即生成伪静态页面的方法,有需要的朋友,可以参考下。

URL重写简单原理:

url重写是截取传入Web请求并自动将请求重定向到其他URL的过程。 
比如浏览器发来请求hostname/news/101.html,服务器自动将这个请求中定向为http://hostname/news/list.aspx?id=101。 

url重写的优点: 
缩短url,隐藏实际路径提高安全性; 
易于用户记忆和键入; 
易于被搜索引擎收录;

实现URL重写的几个步骤: 
第一: 
下载MS的URLRewriter.dll,放到你的类文件下
然后点击引用这个DLL文件
URLRewriter.dll下载地址:
1、URL重写urlrewriter.dll组件下载地址(附完整示例代码)
2、微软URL重写组件urlrewriter.dll下载地址

第二:
系统为服务器版的设置:
在IIS的项目下 属性->主目录->配置-> 通配符应用程序映射(执行程序)添加aspx的映射
直接点击插入,在可执行文件框里填入C:WINDOWSMicrosoft.NETFrameworkv2.0.50727aspnet_isapi.dll(这个目录取决于你的VS安装目录),然后在“确认文件是否存在”项的勾去掉。确定保存!

系统为非服务器版的设置:
在IIS的项目下 属性->主目录->配置-> 通配符应用程序映射(执行程序)添加aspx的映射
可执行文件:c:windowsmicrosoft.netframeworkv2.0.50727aspnet_isapi.dll
扩展名:.html
动作:限制为 GET,HEAD,POST,DEBUG
脚本引擎:选中
确认文件是否存在:不选

第三: 
然后在 web.config 里设置如下: 
 

复制代码 代码示例:

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

   <RewriterConfig>  
    <Rules>
    
      <!--应用规则-->
      <RewriterRule>
        <LookFor>~/news/(d+).html</LookFor>
        <SendTo>
          <![CDATA[~/news/list.aspx?page=$1]]>
        </SendTo>
      </RewriterRule>

   <!--可建立多个应用规则和多个参数传值-->
     <RewriterRule>
        <LookFor>。。。。。。。。</LookFor>
        <SendTo>
          <![CDATA[。。。。。。。]]>
        </SendTo>
      </RewriterRule>
    </Rules>
  </RewriterConfig>
...
 <system.web>
    <httpModules>
      <add type="URLRewriter.ModuleRewriter, URLRewriter" name="ModuleRewriter"/>
    </httpModules>
    ...
 </system.web>
</configuration>

最后,在对应的ASPX文件中接收相应的参数,即可实现生成伪静态了。

有兴趣的朋友,亲自测试下吧,实现伪静态页面效果的那一刻,你会很有成就感的。