asp.net UrlReWriter使用经验小结

第一步,请从此下载该示例源码。解压,把UrlRewriter.dll copy到你的项目 bin 目录下。
第二步,在Web.config中加入:


代码如下:

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

第二步,加入重写的规则节点:
如:


代码如下:

<RewriterConfig>
<Rules>
<RewriterRule>
<LookFor>~/Sell/(.[0-9]*)\.html</LookFor>
<SendTo>~/Search/Search_Sell.aspx?id=$1</SendTo>
</RewriterRule>
<RewriterRule>
<LookFor>~/Sell/Search_Sell\.aspx</LookFor>
<SendTo>~/Search/Search_Sell.aspx</SendTo>
</RewriterRule>
<RewriterRule>
<LookFor>~/Buy/(.[0-9]*)\.html</LookFor>
<SendTo>~/Search/Search_Buy.aspx?id=$1</SendTo>
</RewriterRule>
<RewriterRule>
<LookFor>~/Buys/(.[0-9]*)\.html</LookFor>
<SendTo>~/Buys/Show.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 页面的配置相同的扩展名项。注意“确认文件是否存在”不要勾选,否则会出现找不到文件。

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

第五步,在模块配置中加入:


代码如下:

<httpHandlers>
<add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
<add verb="*" path="*.html" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
</httpHandlers>

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

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

然后在你的这个页面中加入:


代码如下:

<%@ Register TagPrefix="skm" Namespace="ActionlessForm" Assembly="ActionlessForm" %>
再把你的<Form...>改为:
<skm:Form id="你的表单名" method="post" runat="server">
.....
</skm:Form>

(0)

相关推荐

  • ASP.net全局程序文件Global.asax用法分析

    本文详细讲述了ASP.net全局程序文件Global.asax用法,分享给大家供大家参考.具体分析如下: 一般来说ASP.NET应用程序只能有一个Global.asax文件,该文件支持许多项.具体分析如下: •Application_Start:在应用程序接收到第一个请求时调用,这是在应用程序中给应用程序级的变量赋值或指定对所有用户必须保持的状态的理想位置. •  Session_Start:类似于Application_Start事件,但这个事件在用户第一次访问应用程序时调用.例如,Appli

  • ASP.net中实现基于UrlRewrite的防盗链功能

    在ASP.net中最快实现UrlRewrite的方法这篇文章中说了如何做UrlRewrite,那只是一个最简单的应用 其实利用UrlRewrite与IIS的设置我们可以实现简单而有效的防盗链功能. 假设你的站点有一个文件:web.rar,你希望只有具有某些特定域名的来源地址或是已经登陆的用户才能访问,这时就得用到防盗链功能,在ASP时代,我们需要借助第三方组件来完成这个效果,但是在ASP.net中我们可直接利用Context.RewritePath来实现了. 下载配置文件: 复制代码 代码如下:

  • asp.net 站点URLRewrite使用小记

    IIS收到请求-->ISAPI用于处理该请求-->BeginRequest开始-->EndRequest结束-->输出Response 中间有好多其它的流程就不标记了,这里只是列出URLRewrite所走的流程. 其实就是在BeginRequest事件中调用HttpContext的RewritePath方法,将该请求重新"定位"至一个目标URL就完成了. 在站点的Global.asax文件BeginRequest方法中添加代码: 复制代码 代码如下: publi

  • asp.net下用url重写URLReWriter实现任意二级域名的方法第1/2页

    摘要:解释了url重写的相关知识.用asp.net实现二级域名重写的方法.对重写的一些问题做了汇总解答.提供了几段示例代码. 好久没有写技术文章,如果大家看不明白,就多看几篇,汗,或者,在文章的后面回复(这是最有效的办法),我会尽力帮助大家解答疑惑. 来找这篇文章的,应该都知道什么叫二级域名吧,废话就不说了.但是讨论前,先要明白一个思想问题.很多朋友一直考虑不清(我前几天也一直搞不明白)的问题是,我键入一个地址后,怎么这个url就被重写了?第一步:在浏览器键入了一个地址,比如http://lov

  • ASP.NET Global.asax应用程序文件简介

    你可以使用这个文件实现应用程序安全性以及其它一些任务.下面让我们详细看一下如何在应用程序开发工作中使用这个文件. 概述 Global.asax 位于应用程序根目录下.虽然 Visual Studio .NET 会自动插入这个文件到所有的 ASP.NET 项目中,但是它实际上是一个可选文件.删除它不会出问题--当然是在你没有使用它的情况下..asax 文件扩展名指出它是一个应用程序文件,而不是一个使用 aspx 的 ASP.NET 文件. Global.asax 文件被配置为任何(通过 URL 的

  • asp.net Urlrewriter在虚拟主机上的使用方法

    第一,HttpHandle是实现不了urlrewrite的;第二Server.Transfer是标准的重定向,根本不是urlrewrite. 其实,实现urlrewrite不用自己HttpHandle,也不用自己实现HttpModule,用几行代码就可以轻松实现. 我这里介绍的是在虚拟主机上,虚拟主机不同于自己的服务器,你是没有权限去修改IIS,也没有权限去安装iis rewrite之类的IIS插件.但是我们仍然可以轻松完成需要的功能. 具体做法如下:打开global.asax.cs,定位到pr

  • ASP.NET中Global和URLReWrite用法

    本文实例讲述了ASP.NET中Global和URLReWrite用法.分享给大家供大家参考.具体如下: Global.asax: 有时候叫做 ASP.NET 应用程序文件,提供了一种在一个中心位置响应应用程序级或模块级事件的方法.你可以使用这个文件实现应用程序安全性以及其它一些任务. 重点了解:application_Start; application_BeginRequest; application_Error; ① application_Start:自从服务器启动起来,网站第一次被访问

  • asp.net 在global中拦截404错误的实现方法

    复制代码 代码如下: void Application_Error(object sender, EventArgs e) { if(Context != null) { HttpContext ctx = HttpContext.Current; Exception ex = ctx.Server.GetLastError(); HttpException ev = ex as HttpException; if(ev!= null) { if(ev.GetHttpCode() == 404)

  • asp.net UrlReWriter使用经验小结

    第一步,请从此下载该示例源码.解压,把UrlRewriter.dll copy到你的项目 bin 目录下. 第二步,在Web.config中加入: 复制代码 代码如下: <?xml version="1.0" encoding="gb2312" ?> <configuration> <configSections> <section name="RewriterConfig" type="URL

  • ASP.NET性能优化小结(ASP.NET&C#)

    ASP.NET: 一.返回多个数据集 检查你的访问数据库的代码,看是否存在着要返回多次的请求.每次往返降低了你的应用程序的每秒能够响应请求的次数.通过在单个数据库请求中返回多个结果集,可以减少与数据库通信的时间,使你的系统具有扩展性,也可以减少数据库服务器响应请求的工作量. 如果用动态的SQL语句来返回多个数据集,那用存储过程来替代动态的SQL语句会更好些.是否把业务逻辑写到存储过程中,这个有点争议.但是我认为,把业务逻辑写到存储过程里面可以限制返回结果集的大小,减小网络数据的流量,在逻辑层也不

  • 学习ASP的理由 分析小结

    在Google上搜一下,可以发现一大堆对ASP不好的评价,什么运行速度慢.异常处理机制不好.缺乏面向对象机制.开发效率低.漏洞多等等.为了让大家对ASP有个正确的认识,我先为它正名. 一.ASP不慢,慢的是数据库 几年前,我用动网论坛程序架了一个BBS,这套程序就是当时经典的ASP+Access架构.我也遇到了某些人所说的论坛慢,有时候卡死不动的问题.然而,自从我换上SQL Server数据库以后问题就解决了.所以罪魁祸首乃Access.程序执行所需的时间是毫秒级别的,在这个级别内,无论是10毫

  • asp 获取url函数小结

    方法一:简单,得不到参数,只有一个虚拟路径 复制代码 代码如下: GetUrl =request("url") 例如:http://127.0.0.1/shiyan.asp?dfsdfsf=dsfsdfd&aa=dddd 获取为:shiyan.asp 复制代码 代码如下: <% dim changdu,url,ends,wurl changdu=len(request.ServerVariables("URL")) url=instrrev(reque

  • Nginx的使用经验小结

    Nginx Nginx简单介绍 一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器 Nginx命令参数 nginx -t 测试配置是否正确 nginx -s reload 加载最新配置 nginx -s stop 立即停止 nginx -s quit 优雅停止 nginx -s reopen 重新打开日志 kill -USR2 cat /usr/local/nginx/logs/nginx.pid 快速重启 Nginx全局段配置 worker_processes

  • jquery使用经验小结

    1,今天发现jquery获取的dom对象除了jquery对象外,还可以访问原来的对象,只要加一个[]就行了,原来还有这样的功能,之前没仔细研究. 2,用了first-child,nth-child(n),获取元素集合里面的第几个元素. 3,用Jquery访问nodeText节点,通过访问原来的对象,nextSibling访问.访问是nextSibling.nodeValue; <!DOCTYPE HTML> <html> <head> <meta http-equ

  • ASP.NET 程序优化 小结

    一.SqlDataRead和Dataset的选择 Sqldataread优点:读取数据非常快.如果对返回的数据不需做大量处理的情况下,建议使用SqlDataReader,其性能要比datset好很多.缺点:直到数据读完才可close掉于数据库的连接 (SqlDataReader 读数据是快速向前的.SqlDataReader 类提供了一种读取从 SQL Server 数据库检索的只进数据流的方法.它使用 SQL Server 的本机网络数据传输格式从数据库连接直接读取数据.DataReader需

  • asp.net用url重写URLReWriter实现任意二级域名 新

    一般用百度搜的朋友都是对这个不了解但又急需要用的,我想,再多的语言也比不过一句代码.于是我把今天帮朋友时候写的一个小例子传了上来.这个小例子的目的是实现对任意url的重写(但不包括二级域名的,有需要二级域名的也可以先了解下url重写的概念). 这个小项目的制作过程如下 1.需要对诸如http://jb51.net/viewnews/2009/3/2.html的url进行重写.将其重写为http://jb51.net/viewnews.aspx?id=2&year=2009&month=3

  • asp.net用url重写URLReWriter实现任意二级域名 高级篇

    我最近写了个小例子,大家可以先看这个,里面有小例子的完整代码下载 http://www.jb51.net/article/20906.htm 好久没有写技术文章,如果大家看不明白,就多看几篇,汗,或者,在文章的后面回复(这是最有效的办法),我会尽力帮助大家解答疑惑. 来找这篇文章的,应该都知道什么叫二级域名吧,废话就不说了.但是讨论前,先要明白一个思想问题.很多朋友一直考虑不清(我前几天也一直搞不明白)的问题是,我键入一个地址后,怎么这个url就被重写了?第一步:在浏览器键入了一个地址,比如ht

随机推荐