这几天关注地址重写问题,参考了微软的 UrlRewriter 。尝试依葫芦画瓢写了自己的一个 UrlRewriting 。
一、参数
1 、 Enabled : bool 值,设置是否应用 Url 重写功能;
2 、 IsUseCache : bool ,设置是否启用 Cache 功能;(写该功能时,没有测试开启与未开启 Cache 功能对性能带来多少的提高,写该功能只要是练习 Cache 的设置)
3 、 UrlRules : string 类型,设置 Url 重写规则,设置时字符串开头必须包含 "~" 。例: UrlRules= “ ~/Article/(/d+)/show.html ”;
4 、 OrignalUrl : string 类型,设置 Url 重写的原始地址,设置时字符串开头必须包含 "~" ,且相对于网站主目录的 Url 地址必须正确。例: OrignalUrl='~/articleshow.aspx?aid=$1' ;
二、 Web.Config 配置
1 、 configSections 配置
<configSections>
<section name="UrlRewritings" type="Nimeux.UrlRewriting.UrlRewritingSection,Nimeux.UrlRewriting"/>
</configSections>
<UrlRewritings Enabled="false" IsUseCache="false">
<add UrlRules="~/(/d+)/(/d+)/show/.info" OrignalUrl="~/default.aspx?year=$1&month=$2"/>
<add UrlRules="~/show_(/d+)/.info" OrignalUrl="~/showarticle.aspx?aid=$1"></add>
</UrlRewritings>
2 、 httpModules 、 httpHandlers 设置
<httpModules>
<add name="UrlRewritingModule" type="Nimeux.UrlRewriting.UrlRewritingModule,Nimeux.UrlRewriting"/>
</httpModules>
<httpHandlers>
<add verb="*" path="*.info" type="Nimeux.UrlRewriting.UrlRewritingHeadler,Nimeux.UrlRewriting"/>
</httpHandlers>
如果站点设置时不更改 *.aspx 后缀名,那么就不用配置 <httpHanders>
三、这面连接地址
这个 UrlRewriting 有一个让人很难受的问题,那就是页面地址设置的比灵活。例如:页面 Default.aspx 中有一个连接 <a href="2007/10/show.info">test</a> ,他所指向的页面为 "Default.aspx?year=2007&month=10", 当页面加载后,第一次点击该连接,则成功连接且 Url 重写成功。但当在一次点击页面时,链接的地址栏就变成 http : //localhost/2007/10/2007/10/show.info ,显然这个结果是错误的。
解决这个问题,我尝试的一些方法: (1) 使用 asp.net 服务器控件时,设置 NavigateUrl="~/2007/10/show.info", 这样就解决了上述问题 (2) 也是用 <a> 标记,把 href 设置为 href="http://localhost/2007/10/show.info" ,但是这样 VS 自带的默认 Web 服务器下调时就要加入主目录文件夹名(本例中为 /WebTest/ ),也就是链接地址为 href="http://localhost:4325/WebTest/2007/10/show.info ”,在这样带来了不便。在此把这些问题提出,希望各位大侠帮我解决这个问题,这里表示感谢。
四、页面设置好后,就进行 IIS 配置,如果采用 IIS 已经默认的后缀名,则没有必要配置 IIS 了。但如果更改了页面的后缀名,如本例中的 *.info, 则要在 IIS 默认网站中选择属性 / 主目录 / 配置 / 添加新的文件后缀名。
好了,以上就是这两天的所学所得,写出来供大家批评指正。源代码下载地址:(http://download.csdn.net/source/272595)
我的Url重写,我的UrlRewriting相关推荐
- asp.net用url重写URLReWriter实现任意二级域名 (转)
asp.net用url重写URLReWriter实现任意二级域名 Asp.net 用url重写(URLReWriter)实现任意二级域名 好久没有写技术文章,如果大家看不明白,就多看几篇,汗,或者,在 ...
- Url Rewrite 再说Url 重写
前几天看到园子里一篇关于 Url 重写的文章<获取ISAPI_Rewrite重写后的URL> , URL-Rewrite 这项技术早已不是一项新技术了,这个话题也已经被很多人讨论过多次.搜 ...
- URL 重写就是把URL地址重新改写
作者:overred 来源:原创 URL 重写就是把URL地址重新改写(汗^_^). 详情:http://www.microsoft.com/china/msdn/library/webservi ...
- ASP.NET 中执行 URL 重写
作者:overred 来源:原创 URL 重写就是把URL地址重新改写(汗^_^). 详情:http://www.microsoft.com/china/msdn/library/webservi ...
- asp.net 使用UrlRewritingNet.UrlRewriter组件URL重写,伪静态详解
目录 URL重写的业务需求 ReWritingNet组件主要功能 配置IIS(IIS7/8环境下) 程序代码 重写规则 一,URL重写的业务需求 顾客可以直接用浏览器bookmark功能将页面连结储存 ...
- UrlRewritingNet 完美实现 ASP.NET 2.0 中的URL重写(映射)
URL重写好处有很多,如有利于SEO.便于记忆.隐藏真实路径使安全性提高.便于更新等等.本文概要描述了各种URL重写的实现. ASP.NET 2.0 中实现URL重写有很多方法,如:Global. ...
- UrlRewritingNet实现ASP.net 2.0中URL重写(映射)
URL重写好处有很多,如有利于SEO.便于记忆.隐藏真实路径使安全性提高.便于更新等等.本文概要描述了各种URL重写的实现. ASP.NET 2.0 中实现URL重写有很多方法,如:Global.as ...
- URL 重写就是把URL地址重新改写(汗^_^)。
URL 重写就是把URL地址重新改写(汗^_^).详情:http://www.microsoft.com/china/msdn/library/webservices/asp.net/URLRewri ...
- UrlRewritingNet ASP.NET 2.0 中的URL重写(映射)
URL重写好处有很多,如有利于SEO.便于记忆.隐藏真实路径使安全性提高.便于更新等等.本文概要描述了各种URL重写的实现. ASP.NET 2.0 中实现URL重写有很多方法,如:Global.as ...
最新文章
- 半个月3篇Nature/Science,95后曹原3年8篇顶刊,网友:杀疯了杀疯了
- SpringMVC学习(四)——Spring使用到的设计模式分析
- python 字符编码判断 chardet评测
- 碧雪情天服务器地址源如何修改,今天维护吗,碧雪情天怎么进不去啊,知道的说一下...
- 如何用MaskBlt实现两个位图的合并,从而实现背景透明
- gRPC in ASP.NET Core 3.x - gRPC 简介(1)
- Java8 Lambdas:解释性能缺陷的排序
- linux下spi添加设备,Linux Kernl添加spidev的设备节点
- 【HDU - 5493】Queue(思维,贪心,线段树)
- 2016.07.24
- step-by-step: 夕小瑶版神经网络调参指南(上)
- Java笔记-读取资源文件应该注意的问题(大文件解析、\r\n分割相关的)
- Mybatis的resultMap自定义映射
- 组态软件运行在云服务器是上,如何将本地组态画面发布到云服务器
- Android系统(221)---O版自定义开关机动画
- 初识openwrt(下)
- 用计算机怎么算lnk,lnk格式怎么处理!我的电脑除了系统自带其他软件都变成lnk格式...
- 3、redis之java client环境搭建
- 突破大文件上传 和内网ip的端口转发
- 【接口测试】axios测试接口
热门文章
- ParaView-2
- RTKLIB中的各种AR mode 详解
- CSS 绝对定位与相对定位
- 【HTML】表单隐藏域hidden
- java实现QQ微信扫码登录
- 如何区别药品的通用名、商品名(品牌名)和别名?
- 1139:整理药名(C C++)
- USB摄像头图片采集+QT显示(二)
- 利器解读:Linux 内核调测中最最让开发者头疼的 bug 有解了|龙蜥技术
- 【ACO三维路径规划】蚁群算法无人机三维路径规划【含Matlab源码 1278期】