所谓的伪静态页面,就是指的URL重写,在ASP.NET中实现非常简单首先你要在你的项目里引用两个DLL:ActionlessForm.dll、URLRewriter.dll,真正实现重写的是 URLRewriter.dll   但是如果你要实现分页,那么必须使用这个ActionlessForm .dll。文件下载见文章底部。现在来看操作步骤:
  第一步,下载组件,把UrlRewriter.dll 复制到你的项目 bin 目录下。

  第二步,在Web.config中的<configuration>内加入:

   <configSections>
     <section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />
   </configSections>
   <httpModules>
      <add type="URLRewriter.ModuleRewriter, URLRewriter" name="ModuleRewriter" />
   </httpModules>
   <!-- 下面是配置重写URL规则 -->
        <RewriterConfig>
          <Rules>
            <RewriterRule>
              <LookFor>~/Products/Jurisdiction_(\w{3})\.aspx</LookFor>
              <SendTo>~/En/Jurisdiction.aspx?jurid=$1</SendTo>
            </RewriterRule>

<RewriterRule>
              <LookFor>~/Articles/(\d{1,})\.aspx</LookFor>      <!-- 这个是被代替后的文件名,使用到正则表达式 -->
              <SendTo><![CDATA[~/Article_view.aspx?article_id=$1]]></SendTo>      <!-- 这个是要给代替的网页,一般是带有问号后面带参数的网页 -->
            </RewriterRule>
            <RewriterRule>
              <LookFor>~/Articles/(\d{1,})_(\d{1,})\.aspx</LookFor>
              <SendTo><![CDATA[~/Article_view.aspx?article_id=$1&page=$2]]></SendTo>
            </RewriterRule>
            <RewriterRule>          
              <LookFor>~/Sell/(.[0-9]*).html</LookFor>
              <SendTo>~/Search/Search_Sell.aspx?id={GetProperty(Content)}</SendTo>
            </RewriterRule>
          </Rules>
        </RewriterConfig>
  这样比如上面的网址 http://www.bingd.com/Article_View.aspx?article_id=9 就可以用 http://www.bingd.com/Articles/9.aspx 来代替,当然,你代替后的扩展名可以用任何iis能解释的扩展名,如果你喜欢用htm做扩展名,那么在配置转发规则上面配置为htm为扩展名的(html扩展的继续走第四步骤),同样有些文章可能很长,往往我们会把一个文章分成几页,那么根据上面的配置,我们如果想访问 http://www.bingd.com/Article_View.aspx?article_id=9&page=3 我们就可以用http://www.bingd.com/Articles/9_3.aspx 来代替,这样当搜索引擎来抓起你的网页的时候,就会收录你这些网址下去,别人搜索到你网页的时候,就可以从这些地址链接过来
  第三步,加入模块配置(写在<system.web>里面):

<httpHandlers>
                <add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
                <add verb="*" path="*.html" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
        </httpHandlers>
        如果用的是IIS7.0,则不用这么麻烦,这个步骤可以简化为:直接在web.config中的节的节中添加上UrlRewriter:
        <add name="UrlRewriter" type="Intelligencia.UrlRewriter.RewriterHttpModule, Intelligencia.UrlRewriter"/>
        这会保证所有的请求都会经过asp.net的这个Module。
  第四步,将HTML的解析用 asp.net 的ISAPI来解析(htm或其它后缀操作方法相同):
  1、打开IIS管理,右击站点属性。 
  2、切换到“主目录“,点“配置“按纽. 
  3、打开应用程序配置,点”添加“按纽. 
  4、在可执行文件处输入ASP.NET的映射文件,可复制.ASPX的映射:如.net 2.0的:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll 
  在扩展名处输入:.html,动作限制为:GET,HEAD,POST,DEBUG ,取消”检查文件是否存在“选项。
  如果你的页面有回传。比如说放了DATAGRID,有分页的,你点到下一页就发现,晕倒,又出问题了。这下怎么办呢,这个其实微软件的网站上就有说到,我在这里简述一下了。
  第五步,加入窗体回传保持的组件:
  下载 ActionlessForm.dll 放到你的项目 bin 目录下。然后在你的这个页面中加入:
  <%@ Register TagPrefix="skm" Namespace="ActionlessForm" Assembly="ActionlessForm" %>
  再把你的<Form...>改为:
  <skm:Form id="你的表单名" method="post" runat="server">……</skm:Form>
UrlRewriter.dll下载地址:http://urlrewriter.net/
MS 的 URLRewriter.dll(包含ActionlessForm.dll):http://download.microsoft.com/download/0/4/6/0463611e-a3f9-490d-a08c-877a83b797cf/MSDNURLRewriting.msi
参考MS:http://msdn.microsoft.com/zh-cn/library/ms972974.aspx

URLRewrite 实现方法详解的更多相关文章

  1. asp.net iis URLRewrite 实现方法详解

    原文 asp.net iis URLRewrite 实现方法详解 实现非常简单首先你要在你的项目里引用两个dll:actionlessform.dll.urlrewriter.dll,真正实现重写的是 ...

  2. session的使用方法详解

    session的使用方法详解 Session是什么呢?简单来说就是服务器给客户端的一个编号.当一台WWW服务器运行时,可能有若干个用户浏览正在运正在这台服务器上的网站.当每个用户首次与这台WWW服务器 ...

  3. Kooboo CMS - Html.FrontHtml[Helper.cs] 各个方法详解

    下面罗列了方法详解,每一个方法一篇文章. Kooboo CMS - @Html.FrontHtml().HtmlTitle() 详解 Kooboo CMS - Html.FrontHtml.Posit ...

  4. HTTP请求方法详解

    HTTP请求方法详解 请求方法:指定了客户端想对指定的资源/服务器作何种操作 下面我们介绍HTTP/1.1中可用的请求方法: [GET:获取资源]     GET方法用来请求已被URI识别的资源.指定 ...

  5. ecshop后台增加|添加商店设置选项和使用方法详解

    有时候我们想在Ecshop后台做个设置.radio.checkbox 等等来控制页面的显示,看看Ecshop的设计,用到了shop_config这个商店设置功能 Ecshop后台增加|添加商店设置选项 ...

  6. (转)Spring JdbcTemplate 方法详解

    Spring JdbcTemplate方法详解 文章来源:http://blog.csdn.net/dyllove98/article/details/7772463 JdbcTemplate主要提供 ...

  7. C++调用JAVA方法详解

    C++调用JAVA方法详解          博客分类: 本文主要参考http://tech.ccidnet.com/art/1081/20050413/237901_1.html 上的文章. C++ ...

  8. windows.open()、close()方法详解

    windows.open()方法详解:         window.open(URL,name,features,replace)用于载入指定的URL到新的或已存在的窗口中,并返回代表新窗口的Win ...

  9. CURL使用方法详解

    php采集神器CURL使用方法详解 作者:佚名  更新时间:2016-10-21   对于做过数据采集的人来说,cURL一定不会陌生.虽然在PHP中有file_get_contents函数可以获取远程 ...

随机推荐

  1. 好用的一个object c 宏

    好用的一个object c 宏 from https://github.com/justzt/ios-helper/blob/master/Macro.h // // Macro.h // Photo ...

  2. java代码----求最大值,平均值。。。

    总结:方法的返回值----返回的对象到底是什么? package com.a; import java.util.Scanner; //从键盘输入10个数,并输出最大值,最小值,平均值 public ...

  3. java代码 求和1+1/2+1/3+1/4+1/5+1/6+.......+1/n 的值~~~~

    总结:很简单的练习: s=1+1/2+1/3+1/4+1/5+1/6+.......+1/n的值:注意这里的s是float型,绝对记住不能留整数型 即s+=1/i; package com.c2; i ...

  4. 微信小程序之if操作

    .wxss控制样式 .price-agent{ font-size: 25rpx; color:#ababab; float: left; position: absolute; bottom: 0; ...

  5. mysql设计与开发

    架构设计表结构设计索引sql语句1.表结构设计的核心思想是什么?容量评估,性能优化,硬件升级,垂直拆分,水平拆分 2.有个大表为了一个查询(一天就查2次),领导要你建索引(索引空间大小有500G),你 ...

  6. Oracle 复杂查询(1)

    一.复杂查询 1. 列出至少有一个员工的所有部门编号.名称,并统计出这些部门的平均工资.最低工资.最高工资. 1.确定所需要的数据表: emp表:可以查询出员工的数量: dept表:部门名称: emp ...

  7. Deep Learning 学习笔记(7):神经网络的求解 与 反向传播算法(Back Propagation)

    反向传播算法(Back Propagation): 引言: 在逻辑回归中,我们使用梯度下降法求参数方程的最优解. 这种方法在神经网络中并不能直接使用, 因为神经网络有多层参数(最少两层),(?为何不能 ...

  8. leetcode884

    class Solution { public: void SplitString(const string& s, vector<string>& v, const st ...

  9. 【282】◀▶ arcpy.mapping 常用函数说明

    arcpy.mapping 教程入门 arcpy.mapping 指导原则 按字母顺序排序的 arcpy.mpping 类列表 按字母顺序排序的 arcpy.mpping 函数列表 按字母顺序排序的 ...

  10. ZigBee协议栈中AES加密算法

    原文地址:ZigBee协议栈中AES加密算法作者:大浪淘沙 Z-stack对Zigbee2006提供了全面的支持,功能之强大,性能稳定.安全性高,说到安全性是我们今天的主题.CC2430硬件支持128 ...