UrlRewriter 伪url的配置

UrlRewriter 是微软封装好了的一个URL重写组件。使用它可以让我节约很多自已开发的时间。

好了,开始讲述我的应用经验,这只是很菜鸟的经验,高手就不用看了。

第一步,请从此下载此组件。解压,把UrlRewriter.dll copy到你的项目 bin 目录下。

第二步,在Web.config中加入:

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

加入重写的规则节点:
   <RewriterConfig>
          <Rules>
              <RewriterRule>
                   <LookFor>~/Sell/(.[0-9]*)\.html</LookFor>
                   <SendTo>~/Search/Search_Sell.aspx?id=$1</SendTo>
              </RewriterRule>
          </Rules>
     </RewriterConfig>

这个就要根据你的需要了,如果你对正则表达式不熟,那么没办法,要么凭借你的高智商去找其中规律,稍稍改一下就能为你所用了。呵呵。如果实在搞不清,那就自己GOOGLE一下正则表达式吧。(本人开始是参考别人的配置猜的,竟然用对了,呵呵。后来还是看了一下相关资料,发现这东东很有用。)

第三步,加入模块配置(写在<system.web>里面):
<httpHandlers>
     <add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
</httpHandlers>
(这里表示使用HTTP程序来处理重写)

好了,到了现在我们可以试一下看。

于是输入:http://127.0.0.1:8080/Sell/1.aspx 出现了,呵呵。但是如果所它改为:http://127.0.0.1:8080/Sell/1.html
晕,发现不行。汗。。。
呵呵,原因是没把HTML的解析用 asp.net 的ISAPI来解析。
办法是。。。

第四步,在IIS\你的站点\属性\主目录\配置\映谢 加入一个和 aspx 页面的配置相同的扩展名项。扩展名为.html,注意“确认文件是否存在”不要勾选,否则会出现找不到文件。

现在再来试试看。什么?#¥%#¥%#,还是不行。呵呵。不要急,咱们回过头再来看看,原来在 web.config 中我们没有配置 .html 也使用模块此解析。

第五步,在模块配置中加入:
<httpHandlers>
     <add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
<add verb="*" path="*.html" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
</httpHandlers>

现在总可以了吧,呵呵。终于看到了,兴奋吧。不要急,这还只是最简单的。如果你的页面有回传。比如说放了DATAGRID,有分页的,你点到下一页就发现,晕倒,又出问题了。
这下怎么办呢,这个其实微软件的网站上就有说到,我在这里简述一下了。

方法一

对于ASPX页面,我们在客户端查看代码时会发现,它自动为form加入了action,并且地址就是开头所说的原始页面地址。而对于ASPX页面,若当它的action为空时也就将回发到当前地址。这样我们就可以通过在客户端清除action的方法,来实现回发后继续保持有地址。

在页面中加入以下代码即可:
<script type="text/javascript">try{document.forms[0].action=""}catch(ex){}</script>
如果有form的页面,就把上面代码加入<form></form>中,如果是用户控件就直接加到页面里面即可
此种方法最简单最使用,已经过测试

方法二
第六步,加入窗体回传保持的组件:
在原来你下载的项目里找到 ActionlessForm.dll 放到你的项目 bin 目录下。

然后在你的这个页面中加入:
<%@ Register TagPrefix="skm" Namespace="ActionlessForm" Assembly="ActionlessForm" %>
再把你的<Form...>改为:
<skm:Form id="你的表单名" method="post" runat="server">
.....
</skm:Form>

That's All.现在你可以高枕无忧了。一切如你所愿。

最后,恭祝各位一切顺利。

多参数:
web.config
<RewriterRule>
    <LookFor>~/product/sub/Y/([A-Za-z0-9\s]+)/([A-Za-z0-9\s]+)\.html</LookFor>
    <SendTo>~/product/sub_category.aspx?txt_l0=$1&amp;txt_l1=$2&amp;showbrand=Y</SendTo>
   </RewriterRule>

转载于:https://www.cnblogs.com/9who/archive/2010/06/09/1754739.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/549206.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网络地址和广播地址的快速计算方法

目录前提条件方法原理网络地址快速计算示例广播地址快速计算示例前提条件 由IP地址和子网掩码&#xff0c;快速计算网络地址和广播地址。 小窍门前提&#xff1a;当子网掩码组成只有255和0组成时。 方法原理 利用255&#xff08;或者0&#xff09;和其他数字的&&#xf…

职场提醒:面试失败n次以后

投了一份简历&#xff0c;是中国一个很有名的医药公司的职位。面试后对方回复说&#xff0c;我不符合他们的要求。之前也参加过很多公司面试&#xff0c;结果都是说我经验不足。一次次的失败也让我对自己有了新的认识&#xff0c;也不断的刺激我。发现一个工作经验不足的人&…

关于list遍历时sychronizedList方法和synchronized同步块的线程安全问题思考

目录我的难点sychronizedList方法无法解决List遍历时线程不安全问题sychronizd同步块为什么可以解决List遍历时线程不安全问题我的思考过程我的难点 sychronizedList方法无法解决List遍历时线程不安全问题 关于慕课网的socket课程学习中&#xff0c;qiujuer老师在课程中讲到&…

WinCE CEDDK之DMA相关函数

CEDDK提供了DMA的相关函数&#xff0c;在CEDDK/DDK_DMA/ddk_dma.c中定义。实际上里面最有用的就两个函数&#xff0c;HalAllocateCommonBuffer(..)和HalFreeCommonBuffer(..)分别用于为DMA申请和释放 首先介绍一下会用到的DMA适配器结构&#xff0c;在ceddk.h中定义,如下: type…

Navicat中无法自定义标量值函数的问题

目录自定义标量函数代码自定义函数无法创建问题自定义标量函数代码 我的思路&#xff1a;我要创建一个自定义标量函数。使用软件&#xff1a;navicat12.1版本。点击Fx图标进行创建。代码中&#xff0c;使用num作为入参&#xff0c;根据num的大小返回颜色。num大于0返回白色&am…

把十六进制字符转换成十进制数

2019独角兽企业重金招聘Python工程师标准>>> /*** Get the hex value of a character (base16).* param c A character between 0 and 9 or between A and F or* between a and f.* return An int between 0 and 15, or -1 if c was not a hex digit.*/public stat…

明白90/10的原理吗?

什么是90/10原理&#xff1f;即在您的一生中&#xff0c;只有10的事情您无能为力&#xff0c;而90的事情都在您的把握之中。 我们无法阻止汽车老化出故障&#xff0c;我们无法预料飞机晚点&#xff0c;我们的行程可能被司机耽误在路上&#xff0c;等等&#xff0c;这些都是我们…

SQL Server更新某一列中多个字典码对应内容(sql示例)

目录示例-查询出多个字典码对应的内容示例-替换多个字典码对应的内容说明CHARINDEXFOR XML PATH示例-查询出多个字典码对应的内容 建立表格&#xff1a;学生-学习科目表student_study 注意&#xff1a;科目kemu列内容是字典码&#xff0c;需要更换成对应内容。 建立表格&…

DirectX支配游戏!历代GPU架构全解析

http://tech.163.com/digi/10/0430/08/65GM21CJ001618J7.html转载于:https://www.cnblogs.com/qilinzi/archive/2010/06/23/1940494.html

mybatisPlus中的field-strategy(字段更新插入策略):null值插入和更新问题

目录mybatisPlus中null值插入和更新问题实际项目解决方法示例一实际项目解决方法示例二field-strategy字段更新插入策略介绍枚举类FieldStrategy源码枚举类字段简介mybatisPlus中null值插入和更新问题 配置mybatisPlus的项目中&#xff0c;默认进行了不是全量更新的策略&#…

javascript变量声明语法的应用和分号讲究适用性

变量声明语法&#xff1a;var变量名&#xff0c;通常应用在语句的代码当中。在语句ECMAScript中必须与关键字var变量名之间至少有一个空格。(也就是变量名需要遵守一定的规范&#xff0c;至少不应该出现中文;如出现中文那就使语法中的语句代码不能相应连接到有关系地对数据处理…

SQL Server和MysQL中的联表更新sql示例

目录需求说明SQL Server中联表更新sql示例MySQL中联表更新sql示例需求说明 需求说明&#xff1a;把表B的报名号数据&#xff0c;更新到另一张表A的报名号列。通过表A证件号码和表B身份证号相等。 SQL Server中联表更新sql示例 UPDATE a SET a.bmhb.bmh FROM A aINNER J…

Mybatis中(#{ })模糊查询like(使用oracle的concat函数嵌套拼接SQL)

需求&#xff1a; 模糊查询需要左右各拼接一个’%’&#xff0c;如&#xff1a;like %key% 。 项目情况&#xff1a; mybatis中动态传参一般采用占位符#{key}。使用数据库&#xff1a;orecle。 错误的尝试&#xff1a; 尝试使用&#xff1a; like % #{key} %这样写不起作用…

linux构建主从域名服务器

实验步骤&#xff1a;一、构建主域名服务器1、安装域名服务&#xff08;BIND服务器软件包&#xff09;BIND软件包是目前Linux下使用最广泛的DNS服务器安装包&#xff0c;它可以运行到大多数UNIX服务器中&#xff0c;也包括Linux系统。RHEL4默认没有安装BIND服务器软件包&#x…

HashMap的put方法(Java7)和putVal方法(Java8)

目录数组链表&#xff1a;存在性能最坏情况O(n)Java7的HashMap的put方法思路数组链表红黑树&#xff1a;性能提高到O(logn)Java8的HashMap的putVal方法思路数组链表&#xff1a;存在性能最坏情况O(n) Java8以前&#xff0c;HashMap底层数据结构采用数组链表的结构。 数组特点&…

管道过滤器(Pipe-And-Filter)模式

按照《POSA(面向模式的软件架构)》里的说法&#xff0c;管道过滤器&#xff08;Pipe-And-Filter&#xff09;应该属于架构模式&#xff0c;因为它通常决定了一个系统的基本架构。管道过滤器和生产流水线类似&#xff0c;在生产流水线上&#xff0c;原材料在流水线上经一道一道的…

Java创建对象的方式——反序列化创建对象

目录Java创建对象的几种方式反序列化创建对象思路代码示例Java创建对象的几种方式 Java创建对象的方式共有4种。分别为&#xff1a; 1、通过new语句实例化一个对象。 2、通过反射机制创建对象。 3、通过clone()方法创建一个对象。 4、通过反序列化的方式创建对象。 思考&#…

redis知识归纳

目录Redis有哪些数据结构&#xff1f;有大量key需要设置同一时间过期&#xff0c;需要注意什么&#xff1f;Redis分布式锁怎么回事&#xff1f;假设Redis里有1亿个key&#xff0c;其中有10万个key是以同一个固定前缀开头&#xff0c;如何将它们全部找出&#xff1f;如何用Redis…

PCI_Express规范第七章解读-Software Initialization and configuration

7.Software Initialization and configuration PCI EXPRESS Configuration model 支持两种配置空间的访问机制&#xff1a; -PCI 兼容配置机制&#xff1a;100%的二进制兼容PCI 2.3中定义的&#xff0c;以及兼容早期的OS或类似的总线枚举和配置软件。 -PCI Express增强配置机制…

List「Object[]」转Map「Integer,String」处理

题目 有一个List<Object[]>&#xff0c;里面的元素分别是[1,“a”]&#xff0c;[2,“b”]&#xff0c;[1,“c”]&#xff0c;[2,“d”]…&#xff0c;请写一个函数将其转换为一个Map<Integer,String>&#xff0c;以List的Object[]第一个元素为关键字&#xff0c;将…