asp.net 页面url重写

不更改情况下,页面路径为index.aspx?id=1,现在输入页面路径index/1时,也能访问到页面,这一过程叫做url重写

①:在一个类里制定路径重写规则,以下为自定义UrlRewriterFilter类,需要继承接口IHttpModule

②:在配置文件里面configuration节点里进行配置(如果自定义类是在另一个类库里面写的,则需要将该类库的.dll文件生成路径改为和启动项.dll文件路径一致)

另外,asp.net的url重写还可以直接在网站发布的时候,进行IIS  选择url重写功能进行配置

第一步:

using System;
using System .Collections . Generic;
using System .Linq;
using System .Text;
using System .Threading . Tasks;

namespace HttpModule
{
    using System. Web;
    using System. Text .RegularExpressions;
    public class UrlRewriterFilter :IHttpModule
    {
        public void Dispose()
        {
            throw new NotImplementedException ();
        }

        /// <summary>
        /// 负责在第一个管道事件上注册一个重写 index/1的url为 index.aspx?id=1
        /// </summary>
        /// <param name= "context" ></param>
        public void Init( HttpApplication context)
        {
            context . BeginRequest+= context_BeginRequest;
        }

        void context_BeginRequest( object sender, EventArgs e)
        {
            //01.获取当前请求的原始url  index/1
            string url = HttpContext. Current .Request . RawUrl;
            //02.将当前url重写
            // 定义一个正则表达式来检查当前发送过来的url 是否为我要重写的index页面路径
            Regex reg = new Regex ("/index/(.*)" );
            if (reg. IsMatch(url))
            {
                string newUrl = reg .Replace(url, "/index.aspx?id=$1" );
                HttpContext .Current . RewritePath(newUrl);
            }
        }
    }
}

第二步:

  < system.webServer >
    < modules >
      < add name =" indexUrlRewrite " type =" HttpModule.UrlRewriterFilter "/>
    </ modules >
  </ system.webServer >
时间: 2024-10-24 03:52:52

asp.net 页面url重写的相关文章

Asp.net实现URL重写

原文:Asp.net实现URL重写 [概述] URL重写就是首先获得一个进入的URL请求然后把它重新写成网站可以处理的另一个URL的过程.重写URL是非常有用的一个功能,因为它可以让你提高搜索引擎阅读和索引你的网站的能力:而且在你改变了自己的网站结构后,无需要求用户修改他们的书签,无需其他网站修改它们的友情链接:它还可以提高你的网站的安全性:而且通常会让你的网站更加便于使用和更专业. [过程] [方法] 1.在asp.net请求管道中重写路径 2.通过组件,如微软的UrlRewriter.dll

ASP.NET MVC URL重写与优化(初级篇)-使用Global路由表定制URL

ASP.NET MVC URL重写与优化(初级篇)-使用Global路由表定制URL 引言--- 在现今搜索引擎制霸天下的时代,我们不得不做一些东西来讨好爬虫,进而提示网站的排名来博得一个看得过去的流量. URL重写与优化就是搜索引擎优化的手段之一. 假如某手机网站(基于ASP.NET MVC)分类页面URL是这样的, http://www.xxx.com/category/showcategory?categoryid=1000&view=list&orderby=price&p

ASP.NET MVC URL重写与优化(进阶篇)-继承RouteBase玩转URL

http://www.cnblogs.com/John-Connor/archive/2012/05/03/2478821.html 引言-- 在初级篇中,我们介绍了如何利用基于ASP.NET MVC的Web程序中的Global文件来简单的重写路由.也介绍了它本身的局限性-依赖于路由信息中的键值对: 如果键值对中没有的值,我们无法将其利用凑出我们想要的URL表达式. 初级篇传送门:使用Global路由表定制URL   在进阶篇中,我们将介绍ASP.NET 路由相关类的基类-抽象类RouteBas

ASP.NET HttpModule URL 重写 (一) 【Z】

大家好,又来和大家见面了,此次给大家带来的URL重写,关于URL重写是什么,有什么好处,如何重写,今天我和大家一起分享一下我的经验 一.URL重写 URL重写就是首先获得一个进入的URL请求然后把它重新写成网站可以处理的另一个URL的过程.举个例子来说,如果通过浏览器进来的URL是“UserProfile.aspx?ID=1”那么它可以被重写成 “UserProfile/1.aspx”. 二.URL重写优点 1.有利于百度.谷歌等搜索引擎收录于抓取,如果你是网站优化高手的化,这就是基本功了...

【转】Asp.net实现URL重写

[概述] URL重写就是首先获得一个进入的URL请求然后把它重新写成网站可以处理的另一个URL的过程.重写URL是非常有用的一个功能,因为它可以让你提高搜索引擎阅读和索引你的网站的能力:而且在你改变了自己的网站结构后,无需要求用户修改他们的书签,无需其他网站修改它们的友情链接:它还可以提高你的网站的安全性:而且通常会让你的网站更加便于使用和更专业. [过程] 实现 1.新建一个 [ASP.NET 空Web应用程序]项目:WebApp,并添加一个1.html的文件 2. 在解决方案中先添加一个[类

ASP.NET中Url重写后,打不开真正的Html页面

不对IIS配置.html的映射,IIS站点目录下.html页面都能显示.当配置了.html的映射 IIS站点目录下真实存在的.html页面无法显示,错误信息:“页面无法显示”解决方法:1.首先照旧在网站配置的应用程序扩展名映射中添加扩展名.html映射到aspnet_isapi.dll,是否存在不选: 2.在web.config文件中<compilation>节点下添加code:<buildProviders>        <add extension=".htm

Nginx专题: 从编译安装到URL重写

Nginx专题: 从编译安装到URL重写 前言 本文主要实现使用Nginx作为Web服务器, 并使用URL Rewrite实现将手机对Web站点的请求专门重写到一个专门为手机定制的Web页面中 环境介绍 笔者只有一台虚拟机, 桥接到室内的路由器便于手机进行访问, IP地址为192.168.1.103 Nginx介绍 engine x发音同Nginx, 作者是Igor Sysoev,是目前世界上占有率第三的Web服务器软件. Nginx是一款轻量级的Web服务器,可实现反向代理,URL rewri

二:理解ASP.NET的运行机制(例:基于HttpHandler的URL重写)

url重写就是把一些类似article.aspx?id=28的路径重写成 article/28/这样的路径 当用户访问article/28/的时候我们通过asp.net把这个请求重定向到article.aspx?id=28路径有两种方法可以做这件事情 一:基于HttpModule的方案这个方案有有缺点,具体缺点以后再谈我曾写过一篇文章<不用组件的url重写(适用于较大型项目) >就是按这个模式写的 二:基于HttpHandler的方案我们这个例子就是按这个方案做的我们接下来就按这种方式做这个例

ASP.NET 中执行 URL 重写

具体实现步骤(其中的一种实现方法): 一.下载相关的DLL(ActionlessForm.dll和UrlRewriter.dll) http://download.csdn.net/detail/yingwanghbx/4510059 二.在项目中引用那两个DLL文件 右击项目,点击Add Reference,选择Browse,然后选择相应的DLL,点击OK即可. 三.添加browser文件 1.右击项目,点击Add-New Item,选择Browser File,取个有意义的名字.在生成的*.