原文 asp.net iis URLRewrite 实现方法详解

实现非常简单首先你要在你的项目里引用两个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>

 第三步,加入模块配置(写在<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:windowsmicrosoft.netframeworkv2.0.50727aspnet_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/

asp.net iis URLRewrite 实现方法详解的更多相关文章

  1. asp.net页面之间传值方法详解

    asp.net中页面之间传值我们用得最多的就是get,post这两种了,其它的如session,appliction,cookie等这些相对来说少用也不是常用的,只是在特殊情况下在使用了. 1. Ge ...

  2. URLRewrite 实现方法详解

    所谓的伪静态页面,就是指的URL重写,在ASP.NET中实现非常简单首先你要在你的项目里引用两个DLL:ActionlessForm.dll.URLRewriter.dll,真正实现重写的是 URLR ...

  3. asp.net实现md5加密方法详解

    MD5加密简单的说就是把一段明文 通过某种运算方式 求出密文. 例如:明文为:abcdefg 通过一些列运算 得到 密文 7ac66c0f148de9519b8bd264312c4d64 它具有两个特 ...

  4. Windows系统启动iis方法详解

    很多网友一般都用Windows 系统自带的iis服务器来配置web网站,在本地进行调试和修改后才正式上线.虽说操作不难,但是小白来说却无从下手,很多人根本不知道iss在哪,怎么启动,更谈不上配置或者其 ...

  5. ASP.NET MVC 5 学习教程:Details 和 Delete 方法详解

    原文 ASP.NET MVC 5 学习教程:Details 和 Delete 方法详解 在教程的这一部分,我们将研究一下自动生成的 Details 和Delete 方法. Details 方法 打开M ...

  6. 【译】ASP.NET MVC 5 教程 - 11:Details 和 Delete 方法详解

    原文:[译]ASP.NET MVC 5 教程 - 11:Details 和 Delete 方法详解 在教程的这一部分,我们将研究一下自动生成的 Details 和Delete 方法. Details ...

  7. Asp.net中web.config配置文件详解(一)

    本文摘自Asp.net中web.config配置文件详解 web.config是一个XML文件,用来储存Asp.NET Web应用程序的配置信息,包括数据库连接字符.身份安全验证等,可以出现在Asp. ...

  8. session的使用方法详解

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

  9. CURL使用方法详解

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

随机推荐

  1. AFNetWorking 提交 NSArray 类型参数 取不到值的解决办法

    在使用AFNWorking 提交参数的时候, 其中包含NSArray类型的参数, 但是后台可以接收到普通int, string 类型的参数,就是接收不到array类型的, google后发现原来AFN ...

  2. Codeforces 509C Sums of Digits 贪心

    这道题目有人用DFS.有人用DP 我觉得还是最简单的贪心解决也是不错的选择. Ok,不废话了,这道题目的意思就是 原先存在一个严格递增的Arrary_A,然后Array_A[i] 的每位之和为Arra ...

  3. WPF:DataTemplateSelector设置控件不同的样式

    原文 WPF:DataTemplateSelector设置控件不同的样式 最近想实现这么个东西,一个ListBox, 里面的ListBoxItem可能是文本框.下拉框.日期选择控件等等. 很自然的想到 ...

  4. JavaScript自调用匿名函数

    Self-Invoking Anonymous Function,即自调用匿名函数.顾名思义,该函数没有名称,不同的是,该函数定义后立即被调用.该函数的作用是在应用中初始化或做一次性工作. 普通匿名函 ...

  5. 2013年最好的Python开源项目汇总

    2013年Python社区诞生了很多实用的开发工具,这些工具 在一定程度上 可以帮助你节省更多的时间.本文为你汇总了这些工具,它们大部分都是开源的,你还可以通过源码来学习更多的Python开发知识. ...

  6. (step7.2.3)hdu 2554(N对数的排列问题——简单数论)

    题目大意:输入一个整数n,表示有n对整数.判断能否出现一种情况就是2个1之间有1个数,2个2之间有2个数..... 解题思路: 准备知识: ①n对数,共2*n个数.所以要有2*n个位置来放置这2*n个 ...

  7. WebView.destroy() called while still attached 的解决的方法

    能够如今webView的父组件中删除该webview,然后再Destroy parent.removeView(webView); 然后 webView.removeAllViews(); webVi ...

  8. Java For循环效率试验

    非常奇怪的结果! ..! 测试方法如以下 public class Main { public static void main(String[] args){ long ti = System.cu ...

  9. Python 第四篇:生成器、迭代器、装饰器、递归函数与正则表达式

    一:生成器:Generator,可以理解为是一种一个函数产生一个迭代器,而迭代器里面的数据是可以通过for循环获取的,那么这个函数就是一个生成器,即生成器是有函数生成的,创建生成器使用()表示,比如g ...

  10. db link 连接不上

    两边的数据库,不在一个地方.都是oracle. 试了很多次,有时提示连接拒绝,有时连接不上.后来改了dblink的创建脚本,如下,才成功了. -- Create database link creat ...