惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Forbes - Security
Forbes - Security
A
Arctic Wolf
M
MIT News - Artificial intelligence
T
Threat Research - Cisco Blogs
T
The Exploit Database - CXSecurity.com
C
CERT Recently Published Vulnerability Notes
NISL@THU
NISL@THU
L
Lohrmann on Cybersecurity
Martin Fowler
Martin Fowler
A
About on SuperTechFans
P
Palo Alto Networks Blog
Project Zero
Project Zero
The GitHub Blog
The GitHub Blog
WordPress大学
WordPress大学
Blog — PlanetScale
Blog — PlanetScale
博客园_首页
大猫的无限游戏
大猫的无限游戏
Cisco Talos Blog
Cisco Talos Blog
P
Proofpoint News Feed
D
DataBreaches.Net
Cyberwarzone
Cyberwarzone
T
Tor Project blog
IT之家
IT之家
P
Proofpoint News Feed
Help Net Security
Help Net Security
S
Securelist
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
C
CXSECURITY Database RSS Feed - CXSecurity.com
Microsoft Azure Blog
Microsoft Azure Blog
V2EX - 技术
V2EX - 技术
K
Kaspersky official blog
Hugging Face - Blog
Hugging Face - Blog
MongoDB | Blog
MongoDB | Blog
B
Blog
N
News and Events Feed by Topic
The Cloudflare Blog
S
Schneier on Security
P
Privacy & Cybersecurity Law Blog
T
The Blog of Author Tim Ferriss
Recorded Future
Recorded Future
Last Week in AI
Last Week in AI
The Last Watchdog
The Last Watchdog
Hacker News - Newest:
Hacker News - Newest: "LLM"
L
LangChain Blog
I
InfoQ
F
Full Disclosure
The Register - Security
The Register - Security
阮一峰的网络日志
阮一峰的网络日志
H
Hacker News: Front Page
V
V2EX

博客园 - 桂圆

经典语句(人生经典语句 爱情经典语句) 我对GOOGLE MAP API 的一些简单调用 - 桂圆 关于FileUpload上传大文件的问题解决办法 搁浅了我也 无法启动IIS服务解决办法 我对FreeTextBox简单使用 C#格式化数据结果表 - 桂圆 - 博客园 使用JavaScript 为GridView 行添加淡入淡出效果 C#文件操作 - 桂圆 - 博客园 获取GridView中指定的控件 - 桂圆 - 博客园 ScriptManager调用 无参数WebService 通用不间断滚动JS封装类 prototype 轻量级WEB开发的首选ajax框架 【软件设计精要与模式】到手 JS应用(资料很全) SQLServer Transact SQL全集(转) JavaScript基础知识 WinForm控件开发【转载】 使用ICSharpCode.TextEditor.dll 做的一个代码高亮记事本
使用UrlRewritingNet.Dll实现URL 重写
桂圆 · 2007-05-21 · via 博客园 - 桂圆

UrlRewritingNet是一个可以在ASP.NET2.0里使用的实现url重写的一个组件,并且是开源的,使用这个控件,大家通过定义里面的规则就可以实现url重写。利用它开发人员可以很容易的实现Url重写的功能,提高开发效率.

·新建立一个网站项目,添加UrlRewritingNet.UrlRewriter.dll到bin目录下。

<?xml version="1.0"?>
<!-- 
    注意: 除了手动编辑此文件以外,您还可以使用 
    Web 管理工具来配置应用程序的设置。可以使用 Visual Studio 中的
     “网站”->“Asp.Net 配置”选项。
    设置和注释的完整列表在 
    machine.config.comments 中,该文件通常位于 
    \Windows\Microsoft.Net\Framework\v2.x\Config 中
-->
<configuration>
  
<configSections>
    
<section name="urlrewritingnet" restartOnExternalChanges="true" requirePermission="false" type="UrlRewritingNet.Configuration.UrlRewriteSection, UrlRewritingNet.UrlRewriter"/>
  
</configSections>
  
<urlrewritingnet rewriteOnlyVirtualUrls="true" contextItemsPrefix="QueryString" defaultPage="default.aspx" defaultProvider="RegEx" xmlns="http://www.urlrewriting.net/schemas/config/2006/07">
    
<rewrites>
      
<add name="Rewrite5" virtualUrl="^http\://(.*)/Shopping07.05.18/Detail(\d+).aspx" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="Detail.aspx?id=$2" rewrite="Domain" ignoreCase="true"/>
    
</rewrites>
  
</urlrewritingnet>
  
<appSettings/>

  
<connectionStrings/>
    
<system.web>
        
<!-- 
            设置 compilation debug="true" 将调试符号插入
            已编译的页面中。但由于这会 
            影响性能,因此只在开发过程中将此值 
            设置为 true。
        
-->
        
<httpHandlers>
            
<add path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" validate="false"/>
        
</httpHandlers>
        
<compilation debug="true">
            
<buildProviders>
                
<add extension=".rdlc" type="Microsoft.Reporting.RdlBuildProvider, Microsoft.ReportViewer.Common, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
            
</buildProviders>
        
</compilation>
        
<!--
            通过 <authentication> 节可以配置 ASP.NET 使用的 
            安全身份验证模式,
            以标识传入的用户。 
        
-->
        
<authentication mode="Windows"/>
        
<!--
            如果在执行请求的过程中出现未处理的错误,
            则通过 <customErrors> 节可以配置相应的处理步骤。具体说来,
            开发人员通过该节可以配置
            要显示的 html 错误页
            以代替错误堆栈跟踪。
            
        <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
            <error statusCode="403" redirect="NoAccess.htm" />
            <error statusCode="404" redirect="FileNotFound.htm" />
        </customErrors>

        
-->
    
<httpModules>
      
<add name="UrlRewriteModule" type="UrlRewritingNet.Web.UrlRewriteModule, UrlRewritingNet.UrlRewriter"/>
    
</httpModules>
    
</system.web>
 

</configuration>

添加了

 <configSections>
    
<section name="urlrewritingnet" restartOnExternalChanges="true" requirePermission="false" type="UrlRewritingNet.Configuration.UrlRewriteSection, UrlRewritingNet.UrlRewriter"/>
  
</configSections>
  
<urlrewritingnet rewriteOnlyVirtualUrls="true" contextItemsPrefix="QueryString" defaultPage="default.aspx" defaultProvider="RegEx" xmlns="http://www.urlrewriting.net/schemas/config/2006/07">
    
<rewrites>
      
<add name="Rewrite5" virtualUrl="^http\://(.*)/Shopping07.05.18/Detail(\d+).aspx" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="Detail.aspx?id=$2" rewrite="Domain" ignoreCase="true"/>
    
</rewrites>
  
</urlrewritingnet>

一定不要忘记 还有一个地方要添加

    <httpModules>
      
<add name="UrlRewriteModule" type="UrlRewritingNet.Web.UrlRewriteModule, UrlRewritingNet.UrlRewriter"/>
    
</httpModules>

在下面的这个XML 中

     <add name="Rewrite5" virtualUrl="^http\://(.*)/Shopping07.05.18/Detail(\d+).aspx" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="Detail.aspx?id=$2" rewrite="Domain" ignoreCase="true"/>

我还是有几个地方不太明白 就是 这个Shoopping070518 是项目工程的名字 不能改,后面的 Detail.aspx?id=$2 中
$2 不明白是什么意思

高手帮帮忙讲讲吧

因为这个id参数 是从数据库中调的 是个 integer 所以 我使用了 正则表达好式 \d+

就这样 我就实现了 URL 重写
原先的 
http://localhost:18712/Shopping07.05.18/Detail?id=72.aspx
重写成了
http://localhost:18712/Shopping07.05.18/Detail72.aspx

UrlRewritingNet.UrlRewriter.dll 可从其官方网站下载:

http://www.urlrewriting.net