ASP.NET URL Rewrite. URL重写

来源:互联网 发布:js动态添加url参数 编辑:程序博客网 时间:2024/05/14 15:30

这东西有什么用呢?比如把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  这个就转到网络上去了。