.net 实现URL重写

 

这两天,在研究,怎么实现,.net里面的URL重写与伪静态,在MSDN里面,学习了一下,又在网上搜了一些资料,终于做出来了,给大家分享一下。

 

一,获得Mircosoft URLRewriter.dll:
获得Mircosoft URLRewriter.dll可以到http://www.microsoft.com/china/msdn/library/webservices/asp.net/URLRewriting.mspx?mfr=true


 下载完毕后,导入工程,我这里没有对该工程做任何修改,保留了原来的重写方式,然后直接在VS2005里面生成.dll文件就可以了。
二,使用该dll文件:
添加引用,搞定。
三,页面方面的设计,这里不在赘述了,我会放一个下载包,有兴趣的朋友下载来看看吧,代码写的比较乱。
四,web.config的配置
这部是非常关键的,也是静态化能否成功的关键。

<?xml version="1.0"?>
<configuration>
  
<configSections>
    
<section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />
  
</configSections>

  
<RewriterConfig>
        
<Rules>
            
<RewriterRule>
                
<LookFor>~/web/new/type/(.[0-9]*)/.html</LookFor>
        
<SendTo>~/web/new.aspx?id=$1</SendTo>
            
</RewriterRule>
      
<RewriterRule>
        
<LookFor>~/web/index.html</LookFor>
        
<SendTo>~/web/index.aspx</SendTo>
      
</RewriterRule>
        
</Rules>
    
</RewriterConfig>
    
<system.web>
    
<httpHandlers>
      
<add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
      
<add verb="*" path="*.html" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
    
</httpHandlers>
        
<compilation debug="true"/></system.web>
</configuration>

这里简单介绍一下:
<RewriterConfig>
   
<Rules>
   
<RewriterRule>
      
<LookFor>要查找的模式</LookFor>
      
<SendTo>要用来替换模式的字符串</SendTo>
   
</RewriterRule>
   
<RewriterRule>
      
<LookFor>要查找的模式</LookFor>
      
<SendTo>要用来替换模式的字符串</SendTo>
   
</RewriterRule>
   
</Rules>
</RewriterConfig>
httpHandlers的设置主要是配合IIS将请求重新定义处理,这里也比较关键,如果不存在合理的httpHandlers,那么,访问肯定会失败的。

关于正则表达式,可以到百度里搜索:"常用正则表达式",会有很多。

五.配置IIS解析.html文件
右键点我的电脑-->管理-->展开'服务和应用程序'-->internet信息服务-->找到你共享的目录-->右键点击属性 -->点击'配置'-->映射下面 -->找到.aspx的可执行文件路径 复制路径-->粘贴路径-->扩展名为".html"-->然后把检查文件是否存在的勾去掉这样就可以了,如果遇到“确定”按钮失效,可以用键盘事件编辑路径即可解决。
下载前可以先看下教程 https://pan.quark.cn/s/a68c487d9f2f 在***平台的应用开发过程中,URL重写技术被广泛采用,这种技术能够将复杂且不易记忆的URL地址转化为简洁明了的版本,进而优化用户的使用感受并增强搜索引擎的优化效果。 不过,在实际操作中,如果需要对用户进行页面跳转,开发人员通常需要回溯到URL重写之前的初始地址。 这主要是因为经过重写处理的URL可能对用户友好性造成影响,或者出于安全策略的考量需要还原为原始路径。 本文将深入阐释在***环境中如何检索到URL重写之前的原始路径,并阐述了相关的基础知识。 在***中,HttpContext.Request对象是获取当前HTTP请求相关数据的一个核心工具,它囊括了当前请求的URL、cookies、headers等多方面的信息。 一般情况下,一旦URL重写规则被实施,HttpContext.Request对象所返回的将是已经过处理的URL。 然而,在某些特定情况下,比如需要将用户引导至登录界面,并希望将原始的请求URL作为参数传递时,就必须获取到URL重写之前的地址。 常见的应用场景包括当用户尝试访问需要授权的页面时,系统会将用户重定向至登录页面,并将用户最初请求的页面地址作为参数传递给登录页面。 这样一来,用户在完成登录操作后,可以直接返回到原先的页面继续操作,而无需看到被重写后的地址,这种做法无疑提升了用户体验。 在早期阶段,开发人员可能会借助客户端的JavaScript技术来实现这一需求,例如通过location.href获取当前网址,或者在服务端代码中直接编写返回地址。 但这些方法的适用性存在一定的限制,例如客户端JavaScript在某些特定环境下可能无法准确获取地址,而硬编码的地址则可能因为...
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值