ASP.NET页面实现伪静态

来源:互联网 发布:windows phone最新手机 编辑:程序博客网 时间:2024/04/30 12:36

 ASP.NET实现伪静态技术
使用环境:Windows XP Professional
开发平台:NET2.0,VS2005
已经过测试,实现了伪静态技术的实现,可以实现诸如Show.aspx?MyID=1成功转换为1.html的转换,现在将成果与大家分享一下:

      引入:我们为什么不直接使用Show.aspx?MyID=1这种访问方式而非要使用1.html这样的访问方式呢,也许很多人都觉得没有必要再讲解下去,但是小弟也是初学者,考虑到很多现在和我一样水平的爱好者,都曾经为此烦恼不已,或者正在尝试无数次而未果,因此,此文仅针对菜鸟级的同胞们,希望对你们有所帮助,至于达人们看到了,希望提出更多的宝贵意见或建议,以咨鼓励本小虾,以咨为更菜的小虾们提供更多的更简单的更通用更实用的方法!!!

        好了,废话少讲,言归正传,以下为俺的实现过程:

        一:首先要有这个文件URLRewriter.dll,如果没有,赶快到网上下载一个,并将其放到下面的bin目录里面,并且将其引用添加到下面里面;

        二:下面就是Web.Config文件的配置了,当然,配置过程相当简单:

              1:先添加这个

<configSections> //放在<configuration>标签下,还必须放在第一位
  <section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />
  </configSections>
  <RewriterConfig>
    <Rules>
      <!-- Rules for Blog Content Displayer -->
      <RewriterRule>
        <LookFor>~/(.[0-9]*)/.html</LookFor>
        <SendTo>~/ArticleDetail.aspx?MyID=$1</SendTo>
          </RewriterRule>

      <RewriterRule>  //RewriterRule可以加N个,多匹配
        <LookFor>~/index.html</LookFor>
        <SendTo>~/Default.aspx</SendTo>
      </RewriterRule>
    </Rules>
  </RewriterConfig>

            2:再添加这个

    <httpHandlers> //放在<system.web>标签内
      <add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
      <add verb="*" path="*.html" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
    </httpHandlers>

httpHandlers的设置主要是配合IIS将请求重新定义处理,这里也比较关键,如果不存在合理的httpHandlers,那么,访问肯定会失败的。关于正则表达式,可以到百度里搜索:"常用正则表达式",会有很多。

        三:在IIS中找到自己的虚拟目录网站,点属性,然后点配置,然后弹出应用程序配置对话框,选择添加,添加的可执行文件路径为c:/windows/microsoft.net/framework/v2.0.50727/aspnet_isapi.dll,扩展名为.html  ,然后把“检查文件是否存在”的对勾去掉,如果遇到“确定”按钮失效,可以用键盘事件编辑路径即可解决。

         四:示例:配合上面的Web.config文件

假设我们建立了一个网站,建立了Defaul.aspx页面,那么我们再建立一个index.html页面,那么在IIS中把选中这个网站-“属性”-“文档”,建立一个“index.html”的索引,位置调制最前端!然后将网站的index.html页面设为起始页,当我们运行这个网站时可看到首页的地址后缀是index.html,但其实内容是Defaul.aspx这个页面。

缺点:伪静态的页面点击了分页等按钮时会露出原型后缀“.aspx”!

原创粉丝点击