- 浏览: 2068579 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (1409)
- asp/asp.net学习 (241)
- oracle (10)
- delphi (295)
- java (27)
- pb (1)
- 每日点滴 (49)
- 学习方法 (40)
- 思想方面 (104)
- C语言 (5)
- C++ (1)
- 代码重构经验 (5)
- 软件工程 (3)
- 数据库 (99)
- 英语学习 (3)
- mysql (1)
- 该关注的网站或者网页 (42)
- 总结 (7)
- 要去做的事情 (33)
- 算法 (1)
- 网络方面 (29)
- 随感 (96)
- 操作系统 (36)
- UML (12)
- 常用工具的使用 (55)
- 脚本 (7)
- 汇编 (62)
- 数据结构 (2)
- 财务 (38)
- 语文作文 (16)
- 法律 (1)
- 股票 (88)
最新评论
-
devwang_com:
可以,学习了~~
列出文件夹下所有文件夹的树形结构--Dos命令 tree的使用 -
hvang1988:
不管用啊 frxrprt1.PreviewForm.Pare ...
fastReport预览时嵌入到别的窗体 -
00915132:
我也有这个疑问,非常 感 谢
left join加上where条件的困惑 --SQL优化 -
zhuyoulong:
学习了,高效读书
软件架构师要读的书 -
nTalgar:
非常感谢分享!
Application.ProcessMessages用法:
一个url重写实例
转自:http://www.blueidea.com/tech/program/2009/6551.asp
最近有个朋友要做url重写的东西,我帮他弄了弄,回头看当年自己写的那个文章,当时以为自己写的很容易理解.但现在再看却觉得写的不好.而今天百度了一下urlrewriter发现我这个文章竟然排第二.为了方便更多朋友,我再写点东西补充下.
一般用百度搜的朋友都是对这个不了解但又急需要用的,我想,再多的语言也比不过一句代码.于是我把今天帮朋友时候写的一个小例子传了上来.这个小例子的目的是实现对任意url的重写(但不包括二级域名的,有需要二级域名的也可以先了解下url重写的概念). 这个小项目的制作过程如下
- 需要对诸如http://song2.cn/viewnews/2009/3/2.html的url进行重写.将其重写为http://song2.cn/viewnews.aspx?id=2&year=2009&month=3
- 下载微软的那个URLRewriter.dll,使用这个对url进行重写.
我们来看这个url, http://song2.cn/viewnews/2009/3/2.html(当然也可能是3.html,6.html,7.html).要重写,首先是截获url请求,然后分析当时的url,最后跳转到相应的页面.所以我们第一步是要截获url请求.为此新建一个类库叫URL,在该类库中引用URLRewriter.dll.新建一个类myrewritter.cs,代码如下
namespace URL
{
public class myrewritter : URLRewriter.BaseModuleRewriter
{
protected override void Rewrite(string requestedPath, HttpApplication app)
{
if (requestedPath.Contains("viewnews/2009/3/2.html"))
app.Context.RewritePath("/viewnews.aspx?id=2&year=2009&month=3");
else
app.Context.RewritePath("/here.aspx");
}
}
}
可以看到该类继承了URLRewriter.BaseModuleRewriter,然后在Rewrite方法中加入了我们自己的逻辑.现在,只要当前的url请求是viewnews/2009/3/2.html,我们就会将页面重写到/viewnews.aspx?id=2&year=2009&month=3.
这只是一个简单的例子,实际上对于url的判断,一般是用正则表达式来完成.而页面和页面间的对应关系,可能需要通过查询数据库完成.
接下来在网站项目中引用这个类库.然后修改下web.config,下面是我的web.config
大家可以看到我新加了个httpModules.这个的作用是,如果有url请求,asp.net会先把请求传到你指定的这个类中来.add那一行了,前面的是要接收请求的类,后面的是这个类所在的dll的名字.
添加完这一句后,一切就快结束了.由于我们要处理的是.html的页面,所以需要配置下iis.因为默认asp.net的处理引擎不会管.html.我们要做的是用处理asp.ent的那个程序来处理html页面.打开iis.找到你的网站,点右键打开属性.找到主目录(Home Directory),打开配置(Configuration)对话框. 在Application extensions(抱歉我不知道这个在中文系统里叫什么)列表里找到.aspx,点击编辑(Edit...),复制Executable框的内容.比如我的是:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll. 然后点击Add,在打开的对话框里, Executable把刚才复制的路径粘贴到这里,extension填写html,然后确定保存.这样我们就把对.html页面的请求交给了asp.net.
全部完成了,编译下项目(中文环境叫 生成),打开url http://localhost/mytest/viewnews/2009/3/2.html,看会不会重写到http://localhost//viewnews.aspx?id=2&year=2009&month=3
下面是我的例子的全部文件,大家可以下载然后看看.看一句代码比看十句话都管用,对吧
要注意的是,我的例子中,web网站的url配置成了http://localhost:8011,你可能需要更改下这个配置.方法是在网站项目上点右键,打开属性.然后在Web页面中修改.
作为一个初学者,可能对这些东西感觉挺烦的.如果你不想看长篇大论,那最好的办法就是看下我的代码.我最近在学flex,对有些新东西也是处于忍无可忍的状态.春天到了,大家都比较烦躁,所以,静下心来,慢慢来.
<?xml version="1.0"?>
<configuration>
<appSettings/>
<connectionStrings/>
<system.web>
<httpModules>
<add type="URL.myrewritter" name="URL" />
</httpModules>
<compilation debug="true" />
<authentication mode="Windows" />
</system.web>
</configuration>
发表评论
-
关于 字符串中的单引号, 在sql存储过程中的传输总结; 逗号分隔的多个变量提取方法.
2011-10-14 17:49 3402摘自:http://blog.csdn.net/nutia ... -
抓取网站内容 asp.net
2011-10-11 13:28 1051HttpWebRequest myReq ... -
两个DATASET合并成一个新的DATASET
2011-09-28 18:17 2524摘自:http://topic.csdn.net/t/2 ... -
VS设置使用哪个浏览器来调试网页
2011-08-30 16:57 1197摘自:http://zhidao.baidu.com/ques ... -
可使用js获取TREE的CheckBox
2011-08-20 12:32 1092摘自:http://www.uipower.com/bb ... -
正则表达式 验证邮箱
2011-06-02 18:14 2646正则表达式 摘自:http://www.alixixi.com ... -
未能加载程序集 App_Web_vdcnimdz”错误
2011-04-25 17:38 1599问题描述: 自己的一个WebGPS程序,只是拷到了别的 ... -
.net跳到指定错误页面兵显示详细的错误信息
2011-04-14 16:48 1256.net跳到指定错误页面兵显示详细的错误信息 摘自:h ... -
注册*.ocx控件
2011-04-14 11:23 946注册*.ocx控件 问题描述:本地的网站的bin目录下有了个 ... -
C# 读取文本文件的时候出现汉字乱码
2011-04-12 16:01 2470问题描述:C# 使用ReadAllText方法读取文本文件的时 ... -
VS 2008中如何显示代码的行号
2011-04-09 09:51 1246摘自:http://zhidao.baidu.com/ques ... -
VS.NET2008可以使用书签的功能
2011-04-08 17:19 1392摘自:http://blog.csdn.net/lmh_851 ... -
两个类库要添加引用才能使用
2011-04-02 13:57 1164两个类库要添加引用才能使用 ---------------- ... -
缓存 <%@ OutputCache Duration="6000" VaryByParam="none" %>
2011-04-02 10:53 1179在页首添加: <%@ OutputCache Durat ... -
FrameSet的加载顺序
2011-04-02 09:56 3905FrameSet的加载顺序是: (1) mainFrame ... -
Response.AddHeader “P3P”,”CP=CAO PSA OUR”
2011-04-01 18:01 2549摘自:http://my.donews.com/alor ... -
Hashtable 的使用
2011-03-31 09:36 8182011-3-31 Hashtable 的使用: ... -
google地图使用(二)
2011-03-30 10:30 13312011-3-291. 今天客户反映,说GOOGLE地图上的拖 ... -
GOOGLE地图
2011-03-29 18:31 8332011-3-291. 今天客户反映,说GOOGLE地图上的拖 ... -
此组中没有可用的控件 工具箱 vs2008
2011-03-29 09:20 2134问题描述: 此组中没有可用的控件 工具箱 vs2008 ...
相关推荐
在提供的压缩包`UrlReWriterModel`中,很可能包含了实现URL重写的一个模型或示例代码。这个模型可能包括了配置文件、URL重写规则以及对应的控制器或处理程序。例如,如果这是一个ASP.NET的示例,`web.config`文件里...
URL重写是Web开发中的一个重要概念,主要用于优化网站的URL结构,提高用户体验并有利于搜索引擎优化(SEO)。在ASP.NET环境中,Microsoft提供了URL重写模块,使得开发者能够方便地实现URL的美化和管理。本实例主要...
ASP.NET 中执行 URL 重写实例教程
这个文件可能包含具体的UrlWriter实现代码或者是一个演示如何使用UrlWriter进行URL重写的示例项目。为了深入理解这个实例,我们需要关注以下几个关键知识点: 1. **URL重写原理**:URL重写是通过配置服务器规则,将...
URL重写是通过使用特定的规则集来实现的,这些规则定义了如何将一个外部可见的URL转换为内部处理的URL。在ASP.NET中,这通常是通过IIS(Internet Information Services)的URL重写模块或者第三方库如UrlRewriter完成...
ASP.NET URL重写是Web开发中的一个重要概念,它允许开发者隐藏实际的页面路径,提供更加用户友好的URL,提升网站的可访问性和SEO优化。在ASP.NET中,URL重写通常通过`System.Web.Routing`命名空间下的类来实现。本...
4. 最后,`testurl4`可能是用来测试URL重写效果的示例文件或者是一个包含更多详细信息的文档。通过分析和运行这个示例,开发者可以更好地理解和掌握如何在实际项目中应用URL重写。 总的来说,URL重写对于构建高质量...
下面是一个基础的URL重写实例: ```csharp using System.Web.Routing; void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); // 忽略.axd文件 routes....
五、URL重写实例 例如,我们有一个动态生成的页面,原始URL可能是`example.com/index.php?id=123`,通过URL重写,可以将它转换为`example.com/news/123`。在Apache中,我们可以创建一个.htaccess文件,添加以下规则...
ASP.NET URL重写是Web开发中的一个重要技术,它允许开发者隐藏实际的服务器路径,提供更加友好、可读性更强的URL给用户。这不仅有助于提升用户体验,还可以在SEO(搜索引擎优化)方面起到积极作用。本实例将深入探讨...
URL重写是Web开发中一个重要的技术,它主要用于优化网站的URL结构,使其更美观、更易读,同时也对搜索引擎优化(SEO)有着积极的影响。本文将深入探讨URL重写的基本概念、工作原理以及如何在实际应用中进行操作,...
为了更好地理解URL重写,可以通过一个简单的例子来说明:假设原来的URL为`UserProfile.aspx?ID=1`,经过重写后变为`UserProfile/1.aspx`。这样的改动不仅使得URL更加简洁易读,同时也有利于网站的管理和用户的友好...
URL重写是Web开发中一...在这个实例中,"urlRewrite"可能是一个相关的项目或代码示例,它包含了具体的URL重写规则和配置文件。通过研究这个实例,你可以更好地理解如何在实践中应用URL重写技术,提升你的Web开发技能。
URL重写是Web开发中的一个重要概念,主要用于优化和管理网站的URL结构,使其更符合搜索引擎优化(SEO)标准,同时也可提升用户体验。本实例将详细解释URL重写的原理和实践,涉及URL重写工具和库的使用。 首先,URL...
下面是一个使用UrlRewriter.dll进行URL重写的简单示例: ```xml <match url="^article/(\d+)" /> <action type="Rewrite" url="article.aspx?id={R:1}" /> ``` 这段配置会将所有形如 `/article...
在 ASP.NET 中,可以通过 URL 重写实现伪静态,上面的配置就是一个简单的伪静态实例。 5. **使用 HttpHandler 实现 URL 重写**: 除了使用 HttpModule,还可以通过自定义 HttpHandler 来实现 URL 重写。...
URL重写是Web应用程序的一种技术,它允许服务器根据预定义的规则将请求的URL转换为另一个URL。这种转换在后台发生,用户浏览器看到的仍然是原始的、友好的URL。这有助于创建易于记忆且更具描述性的链接,对于提高...
在这个“ASP.NET 1.1(2.0)版URL重写组件”中,包含了一个C#编写的实例源码,帮助开发者深入理解并应用这一技术。 URL重写组件的核心概念在于,它能够将用户的请求转换为内部处理路径,而这个路径可能是不同的,甚至...
在Java Web应用中,Tuckey's URLRewriteFilter是一个常用的URL重写工具。下面是一些基本的配置示例: ```xml <!-- 配置URLRewriteFilter --> <filter-name>UrlRewriteFilter <filter-class>org.tuckey.web....