`

一个url重写实例

阅读更多

 

 

 

一个url重写实例

转自:http://www.blueidea.com/tech/program/2009/6551.asp

最近有个朋友要做url重写的东西,我帮他弄了弄,回头看当年自己写的那个文章,当时以为自己写的很容易理解.但现在再看却觉得写的不好.而今天百度了一下urlrewriter发现我这个文章竟然排第二.为了方便更多朋友,我再写点东西补充下.

一般用百度搜的朋友都是对这个不了解但又急需要用的,我想,再多的语言也比不过一句代码.于是我把今天帮朋友时候写的一个小例子传了上来.这个小例子的目的是实现对任意url的重写(但不包括二级域名的,有需要二级域名的也可以先了解下url重写的概念). 这个小项目的制作过程如下

  1. 需要对诸如http://song2.cn/viewnews/2009/3/2.html的url进行重写.将其重写为http://song2.cn/viewnews.aspx?id=2&year=2009&month=3
  2. 下载微软的那个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>

分享到:
评论

相关推荐

    URL重写的一个例子

    在提供的压缩包`UrlReWriterModel`中,很可能包含了实现URL重写的一个模型或示例代码。这个模型可能包括了配置文件、URL重写规则以及对应的控制器或处理程序。例如,如果这是一个ASP.NET的示例,`web.config`文件里...

    URL重写实例,无二级重写

    URL重写是Web开发中的一个重要概念,主要用于优化网站的URL结构,提高用户体验并有利于搜索引擎优化(SEO)。在ASP.NET环境中,Microsoft提供了URL重写模块,使得开发者能够方便地实现URL的美化和管理。本实例主要...

    ASP.NET 中执行 URL 重写实例教程

    ASP.NET 中执行 URL 重写实例教程

    UrlWriter实现url重写的一个实例

    这个文件可能包含具体的UrlWriter实现代码或者是一个演示如何使用UrlWriter进行URL重写的示例项目。为了深入理解这个实例,我们需要关注以下几个关键知识点: 1. **URL重写原理**:URL重写是通过配置服务器规则,将...

    asp.net url重写实例

    URL重写是通过使用特定的规则集来实现的,这些规则定义了如何将一个外部可见的URL转换为内部处理的URL。在ASP.NET中,这通常是通过IIS(Internet Information Services)的URL重写模块或者第三方库如UrlRewriter完成...

    asp.net url完整重写实例

    ASP.NET URL重写是Web开发中的一个重要概念,它允许开发者隐藏实际的页面路径,提供更加用户友好的URL,提升网站的可访问性和SEO优化。在ASP.NET中,URL重写通常通过`System.Web.Routing`命名空间下的类来实现。本...

    url重写 完美实例

    4. 最后,`testurl4`可能是用来测试URL重写效果的示例文件或者是一个包含更多详细信息的文档。通过分析和运行这个示例,开发者可以更好地理解和掌握如何在实际项目中应用URL重写。 总的来说,URL重写对于构建高质量...

    url重写实例保证能通过的例子保证能通过的例子

    下面是一个基础的URL重写实例: ```csharp using System.Web.Routing; void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); // 忽略.axd文件 routes....

    URL重写URL重写

    五、URL重写实例 例如,我们有一个动态生成的页面,原始URL可能是`example.com/index.php?id=123`,通过URL重写,可以将它转换为`example.com/news/123`。在Apache中,我们可以创建一个.htaccess文件,添加以下规则...

    asp.net url地址重写实例

    ASP.NET URL重写是Web开发中的一个重要技术,它允许开发者隐藏实际的服务器路径,提供更加友好、可读性更强的URL给用户。这不仅有助于提升用户体验,还可以在SEO(搜索引擎优化)方面起到积极作用。本实例将深入探讨...

    url重写 带实例 简单易懂 方便

    URL重写是Web开发中一个重要的技术,它主要用于优化网站的URL结构,使其更美观、更易读,同时也对搜索引擎优化(SEO)有着积极的影响。本文将深入探讨URL重写的基本概念、工作原理以及如何在实际应用中进行操作,...

    URL重写概念和例子

    为了更好地理解URL重写,可以通过一个简单的例子来说明:假设原来的URL为`UserProfile.aspx?ID=1`,经过重写后变为`UserProfile/1.aspx`。这样的改动不仅使得URL更加简洁易读,同时也有利于网站的管理和用户的友好...

    url重写实例,不错的东西,希望可以帮助你

    URL重写是Web开发中一...在这个实例中,"urlRewrite"可能是一个相关的项目或代码示例,它包含了具体的URL重写规则和配置文件。通过研究这个实例,你可以更好地理解如何在实践中应用URL重写技术,提升你的Web开发技能。

    补充知识点实例(URL重写)

    URL重写是Web开发中的一个重要概念,主要用于优化和管理网站的URL结构,使其更符合搜索引擎优化(SEO)标准,同时也可提升用户体验。本实例将详细解释URL重写的原理和实践,涉及URL重写工具和库的使用。 首先,URL...

    网页静态化 URL重写代码实例

    下面是一个使用UrlRewriter.dll进行URL重写的简单示例: ```xml &lt;match url="^article/(\d+)" /&gt; &lt;action type="Rewrite" url="article.aspx?id={R:1}" /&gt; ``` 这段配置会将所有形如 `/article...

    asp.net2.0的URL重写例子

    在 ASP.NET 中,可以通过 URL 重写实现伪静态,上面的配置就是一个简单的伪静态实例。 5. **使用 HttpHandler 实现 URL 重写**: 除了使用 HttpModule,还可以通过自定义 HttpHandler 来实现 URL 重写。...

    asp.net 中的url重写

    URL重写是Web应用程序的一种技术,它允许服务器根据预定义的规则将请求的URL转换为另一个URL。这种转换在后台发生,用户浏览器看到的仍然是原始的、友好的URL。这有助于创建易于记忆且更具描述性的链接,对于提高...

    ASP.NE1.1(2.0)版URL重写组件带实例源码

    在这个“ASP.NET 1.1(2.0)版URL重写组件”中,包含了一个C#编写的实例源码,帮助开发者深入理解并应用这一技术。 URL重写组件的核心概念在于,它能够将用户的请求转换为内部处理路径,而这个路径可能是不同的,甚至...

    urlrewrite地址重写实例配置说明

    在Java Web应用中,Tuckey's URLRewriteFilter是一个常用的URL重写工具。下面是一些基本的配置示例: ```xml &lt;!-- 配置URLRewriteFilter --&gt; &lt;filter-name&gt;UrlRewriteFilter &lt;filter-class&gt;org.tuckey.web....

Global site tag (gtag.js) - Google Analytics