zoukankan      html  css  js  c++  java
  • asp.net 使用UrlRewritingNet.UrlRewriter组件URL重写,伪静态详解

    目录

    • URL重写的业务需求

    • ReWritingNet组件主要功能

    • 配置IIS(IIS7/8环境下)

    • 程序代码

    • 重写规则

    一,URL重写的业务需求

    1. 顾客可以直接用浏览器bookmark功能将页面连结储存起来.
    2. url有意义,便于记忆URL
    3. 利于搜索引擎收录
    4. 便于更新
    5. 隐藏实际文件路径,提高网站的安全性

    二,ReWritingNet组件主要功能

    1. 基于正则表达式的重写
    2. 支持Themes和母版页
    3. 支持输出缓存
    4. 支持信任级别为"Medium"的使用环境
    5. 支持Postback
    6. 支持无Cookie的Session
    7. 运行时添加、修改改写规则
    8. 容易安装使用 

    三,配置IIS(IIS7/8环境下)

    1. 下载伪静态组件:http://www.iis.net/downloads/microsoft/url-rewrite
    2. 安装伪静态组件

    查看是否安装成功

    四,程序代码

    1. 引入Dll文件
    • 把UrlRewritingNet.UrlRewriter.dll文件添加的工程的Bin文件下
    1. Web Config配置
    a.首先、在ConfigSections节新增Section,如下
    <configSections>
        <section name="urlrewritingnet" restartOnExternalChanges="true" requirePermission="false" type="UrlRewritingNet.Configuration.UrlRewriteSection, UrlRewritingNet.UrlRewriter"/>
      </configSections>
    b.在 <system.web>节点下配置如下内容
     <httpModules>
          <add name="UrlRewriteModule" type="UrlRewritingNet.Web.UrlRewriteModule, UrlRewritingNet.UrlRewriter"/>
        </httpModules>

    解释:HttpModule 是实现 IHttpModule 接口和处理事件的程序集。ASP.NET 包含一组可由应用程序使用的 HttpModule 模块。例如,ASP.NET 提供了 SessionStateModule 来向应用程序提供会话状态服务。可以创建自定义 HttpModule以响应 ASP.NET 事件或用户事件

    c.在<configuration>节点配置重写规则,或者重新新建一个urlrewriting.config来配置重写规则
    <?xml version="1.0" encoding="utf-8"?>
    <urlrewritingnet rewriteOnlyVirtualUrls="true" defaultPage=""  contextItemsPrefix="QueryString"  defaultProvider="RegEx" xmlns="http://www.urlrewriting.net/schemas/config/2006/07">
        <rewrites>
            <!--首页-->
            <add name="eshop" virtualUrl="^~/(d+).html" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/VipStore/5/Index.aspx?StoreID=$1" ignoreCase="true"/>
            <!--默认-->
            <add name="default" virtualUrl="^~/default.html" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/Search.aspx" ignoreCase="true"/>
          <add name="default2" virtualUrl="^~/default.aspx" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/Search.aspx" ignoreCase="true"/>
          <add name="default3" virtualUrl="^~/" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/Search.aspx" ignoreCase="true"/>
        </rewrites>
    </urlrewritingnet>

    五, 重写规则

    (一)、扩展名不变的重写
     <add name="default2" virtualUrl="^~/default.aspx" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/Search.aspx" ignoreCase="true"/>
    (二)、伪静态重写,扩展名为.html
    <add name="default" virtualUrl="^~/default.html" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/Search.aspx" ignoreCase="true"/>
    (三)、任意扩展名的重写 如:扩展名为.tkx,配置和伪静态一样配置
    <!--    任意扩展名的重写如:扩展名为.tkx-->
          <add name="RewriteIndex" virtualUrl="^~/index_(d+).tkx"
                        rewriteUrlParameter="ExcludeFromClientQueryString"
                        destinationUrl="~/index2.aspx?ID=$1"
                        ignoreCase="true" />

    IIS配置:扩展名如果不在IIS处理程序映射内,那么需要添加对应的处理程序映射

    可执行文件:c:windowsmicrosoft.netframeworkv2.0.50727aspnet_isapi.dll

    (四)、无后缀的重写
     <add name="muying" virtualUrl="^~/muying/" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/Muying.aspx"  ignoreCase="true"/>
    (五)、二级域名到多级域名的重写
    <add name="Rewrite1" virtualUrl="^http://(.*).xianfen.net/Default.aspx" 
         rewriteUrlParameter="ExcludeFromClientQueryString" 
         destinationUrl="~/Default.aspx?ID=$1" 
         ignoreCase="true" />

    注意,在进行二级域名重写时要对一个地方进行重新设置:

     <urlrewritingnet 
        rewriteOnlyVirtualUrls="true" 改为 false    
        contextItemsPrefix="QueryString" 
        defaultPage = "Default.aspx" 
        defaultProvider="RegEx" 
        xmlns="http://www.urlrewriting.net/schemas/config/2006/07" > 

    重写规则、参数个数等等可以自己定义,还可以在运行时添加、修改重写规则,也可以扩展该组件的功能来满足形形色色的需求。具体可查看其文档和源码

  • 相关阅读:
    善于倾听,时刻清醒
    FlinkCDC读取MySQL并写入Kafka案例(com.alibaba.ververica)
    直线与圆弧插补采用DDS的模拟程序
    博客园的傻逼程序员开发的傻逼功能
    MeEdu知识付费系统文件上传功能
    微软商业智能(BI)分析服务从入门到精通读书笔记连载
    软件设计师&产品经理应常去的网站
    Windows Phone 7 Jump Start 系列教程
    设计学习《大象》阶段学习总结
    通过FxCop来验证.NET编码规范
  • 原文地址:https://www.cnblogs.com/sunxi/p/4564243.html
Copyright © 2011-2022 走看看