ASP.NET URL Rewrite. URL重写

本文详细介绍了如何通过配置web.config文件实现URL重写,包括设置正则表达式匹配规则及重定向请求的具体方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这东西有什么用呢?比如把http://localhost:44116/BuyBookInfoSys/BookItem.aspx?BookId=8==》http://localhost:44116/BuyBookInfoSys/b8.aspx

你们玩过百度空间应该知道,假如我登录进去,用jian4364这个ID,后台地址就是:http://hi.baidu.com/jian4364/ihome,应该就是重写了:http://hi.baidu.com/userid?id=jian4364/ihome

修改配置文件(三处)

 <LookFor>~/d(/d+)/.aspx</LookFor>表示,用户输入的url,d(/d+)/.aspx是 url中文件名匹配的正则表达式(此处为字母d开头,后面跟一个或多个数字,并以.aspx结尾。用户也可根据自己的需要自行设定)。

 <SendTo>~/bookitem.aspx?bookid=$1</SendTo> 表示当服务器接收到符合上面条件的请求后如何重写url。此处表示访问defalutl.aspx并传入参数id,其值$1将用用户请求的文件名中的第一个数字来表示。

Code:
  1. </configSections>  
  2.   <RewriterConfig>  
  3.     <Rules>  
  4.       <RewriterRule>  
  5.         <LookFor>~/b(/d+)/.aspx</LookFor>  
  6.         <SendTo>~/bookitem.aspx?bookid=$1</SendTo>  
  7.       </RewriterRule>  
  8.     </Rules>  
  9.   </RewriterConfig>  
Code:
  1. <configSections>  
  2.     <section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />  
Code:
  1. <httpHandlers>  
  2.             <remove verb="*" path="*.asmx"/>  
  3.       <add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />  

在bin添加引用URLRewriter.dll,下载地址download.csdn.net/source/2765006

www.cnblogs.com/rickel/archive/2007/02/04/639616.html

 下面是继续改进的:

我再在web.config加了这个规则:

Code:
  1. <Rules>  
  2.   <RewriterRule>  
  3.     <LookFor>~/b(/d+)/.html</LookFor>  
  4.     <SendTo>~/bookitem.aspx?bookid=$1</SendTo>  
  5.   </RewriterRule>  
  6. </Rules>  
  7. <Rules>  
  8.   <RewriterRule>  
  9.     <LookFor>http://b(/d+)/.pitcms/.com/</LookFor>  
  10.     <SendTo>~/bookitem.aspx?bookid=$1</SendTo>  
  11.   </RewriterRule>  
  12. </Rules>  

加上这个

Code:
  1. <httpHandlers>  
  2.      <remove verb="*" path="*.asmx"/>  
  3.      <add verb="*" path="*.html" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />  
  4.      <add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />  

并且把localhost改成127.0.0.1 www.pitcms.com ( 这个在这里改 C:/WINDOWS/system32/drivers/etc/hosts)

再在管理里面配置下映射,可以访问http://www.pitcms.com/BuyBookInfoSys/b11.html

但不可以访问http://11.pitcms.com/BuyBookInfoSys  这个就转到网络上去了。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值