zoukankan      html  css  js  c++  java
  • 【转】Intelligencia.UrlRewriter简单的设置方法

    转自:http://www.cnblogs.com/baidu/articles/1350839.html

    1、在webconfig中加入如下代码

    <configSections>
    <section name="rewriter" requirePermission="false" type="Intelligencia.UrlRewriter.Configuration.RewriterConfigurationSectionHandler, Intelligencia.UrlRewriter" />
    </configSections>

    <rewriter>
        <!--重写规则-->
        <rewrite url="^/User/(\d+)$" to="~/aa.aspx?id=$1" processing="stop" />
        <rewrite url="^/User/(\w+)$" to="~/aa.aspx?name=$1" processing="stop" />
    </rewriter>

    <system.web>
    <httpModules>
          <add type="Intelligencia.UrlRewriter.RewriterHttpModule, Intelligencia.UrlRewriter" name="UrlRewriter" />    
        </httpModules>
    </system.web>

    2、解决在URL Rewrite后保持PostBack地址

    在Web项目中创建一个browser文件,例如 App_Browsers\Form.browser(名字可以随便起,只要在这个文件夹下就可以),然后在里面里写入下列代码保存即可。

    <browsers>
    <browser refID="Default">
        <controlAdapters>
          <adapter controlType="System.Web.UI.HtmlControls.HtmlForm"
                   adapterType="Intelligencia.UrlRewriter.FormRewriterControlAdapter" />
        </controlAdapters>
    </browser>
    </browsers>

    更多详情请参考http://www.cnblogs.com/JeffreyZhao/archive/2008/01/13/Url-Rewrite-3.html

    urlrewriter.net官网下载地址:http://urlrewriter.net/index.php/download/

    中文版http://www.urlrewriter.cn/Docs

    常用规则

    当使用通配符映射或者使用ASP.NET处理所有HTTP请求的时候,IIS的默认文档机制也就失去了该有的作用,以下代码就是用来重新实现默认文档的方法:

    <rewrite url="^(.*)/(\?.+)?$" to="$1/default.aspx$2" />

    注意:使用“processing="restart"”的时候将会导致重写引擎从头开始执行所有的重写规则,此时应当注重包含“/default.aspx”字符串的处理。

    如果你需要同时支持多个默认文档,那么以上代码需要修改为:

    <if url="^(.*)/(\?.+)?$">
    <rewrite exists="$1/default.aspx" to="$1/default.aspx$2" />
    <rewrite exists="$1/index.aspx" to="$1/index.aspx$2" />
    <rewrite exists="$1/index.html" to="$1/index.html$2" />
    </if>

    编辑以上规则代码的时候,尤其要注意确认文件是否存在。

    此外,在使用通配符映射或者使用ASP.NET处理所有HTTP请求的时候,你会发现.gif、.css等文件无法正常访问,这是因为此时对这些文件类型的处理都被ASP.NET所拦截。修正方法如下:

    <rewrite 
    url="^(/.+(\.gif|\.png|\.jpg|\.ico|\.css|\.js)(\?.+)?)$"
    to="$1" processing="stop" />

    两个比较特殊的正则表达式字符是“^”和“$”(不是必须的),“^”代表URL的开头,“$”代表URL的结尾。使用这两个符号可以使您更加精确的控制重写动作,以确保程序所匹配的URL正是您想处理的。

    “~/”表示当前网站应用程序运行所在的虚拟根目录,当您把网站应用程序安装于虚拟目录(或者非根目录)的时候,这尤其有用,而无须重新编写任何代码来替换您的虚拟根路径。

    模式匹配在处理查询字串(QueryStrings)的时候尤其有用,这可以让您的URL去掉类似于“?id=3”的代码段,这非常有用,可以让你轻松的实现伪静态。

    下面列出两个我们认为非常有特色的重写规则:

    (1) 当目标URL不包含自定义查询字串的时候:

    <rewrite url="^~/mypage(\?.+)?$" to="~/default.aspx$1" />

    此时“$1”匹配的是(\?.+)?,也就是所有的查询字串。

    (2) 当目标URL包含自定义查询字串的时候:

    <rewrite url="^~/mypage(\?(.+))?$" 
    to="~/default.aspx?page=mypage&$2" />

    注意此时需要使用“&amp;”来代替“&”,这是XML文档语法的需要。

  • 相关阅读:
    (十一)设置关闭多核cpu的核
    (十)修改开发板主频
    (九)How to use the audio gadget driver
    (8)全志A64查看寄存器
    内存溢出问题配置
    百度数据库优化经验
    如何让sql运行的更快
    百度性能优化
    spring ioc原理
    JNDI
  • 原文地址:https://www.cnblogs.com/5tao/p/1672827.html
Copyright © 2011-2022 走看看