ASP.NET伪静态实现

在asp.net下,如何自己写代码来实现伪静态呢?如何重写url地址呢?

例如:本来aspx的页面地址是:/default.aspx?id=1,我要重写成这样:/index-1.html。那如何实现?

思路如下:利用HttpModule来实现。

 

1.新建文件,URLHttpModel.cs,并实现IHttpModule接口。代码如下:

[csharp] view plain copy

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text.RegularExpressions;
  5. using System.Web;
  6. namespace Web.HttpModel.Demo
  7. {
  8. public class URLHttpModel : IHttpModule
  9. {
  10. public void Init(HttpApplication context)
  11. {
  12. context.BeginRequest += Context_BeginRequest;
  13. }
  14. private void Context_BeginRequest(object sender, EventArgs e)
  15. {
  16. HttpApplication app = (HttpApplication) sender;
  17. HttpContext context = app.Context;
  18. string requestPage = context.Request.Path.ToLower();
  19. var newPattern = "/index-(\\d+).html";
  20. if (Regex.IsMatch(requestPage, $"^{newPattern}$", RegexOptions.None | RegexOptions.IgnoreCase))
  21. {
  22. string queryString = Regex.Replace(requestPage, newPattern, "id=$1", RegexOptions.None | RegexOptions.IgnoreCase);
  23. context.RewritePath("/Default.aspx", string.Empty, queryString);
  24. }
  25. }
  26. public void Dispose()
  27. {
  28. }
  29. }
  30. }

2.然后在web.config文件中,配置此Modeule,代码如下:

[csharp] view plain copy

  1. <httpModules>
  2. <add name="URLModel" type="Web.HttpModel.Demo.URLHttpModel,Web.HttpModel.Demo"/>
  3. </httpModules>

3,然后运行项目,输入如下地址,/index-1.html,可以看到如下的效果:

时间: 2024-10-10 22:29:42

ASP.NET伪静态实现的相关文章

asp.net伪静态化

方法一:利用Httphandler实现URL重写(伪URL及伪静态) 我们有时候会见到这样的地址:“http://www.huoho.com/show-12-34.html”,你或许认为在站点服务器根目录“/”下存在名为“show-12-34.html”的文件,其实实际它可能是不存在的,而可能你看到的内容是“/aspx/show.aspx?type= 12&id=34”的内容,为什么要这样做呢?原因有多个方面:首先是增强URL的友好性,记“show-12-34.html”总比 “/aspx/sh

ASP.NET伪静态

方法一:利用Httphandler实现URL重写(伪URL及伪静态) 我们有时候会见到这样的地址:“http://www.huoho.com/show-12-34.html”,你或许认为在站点服务器根目录“/”下存在名为“show-12-34.html”的文件,其实实际它可能是不存在的,而可能你看到的内容是“/aspx/show.aspx?type= 12&id=34”的内容,为什么要这样做呢?原因有多个方面:首先是增强URL的友好性,记“show-12-34.html”总比 “/aspx/sh

[转载]ASP.NET伪静态页面的实现和伪静态在IIS7.0中的配置

ASP.NET伪静态 UrlRewrite(Url重写) 实现和配置 最近在写一个CMS的内容管理系统,需要用到一个伪静态方面的方法,在网上找了一下这方面的资料,现将这方面的资源记录一下. 本机环境: Window server 2008 R2 Enterprise 操作系统+SQL Server 2008 R2 Enterprise企业版数据+Visual Studio 2010 SP1 普及一下伪静态方面的知识, 1.伪静态简单一点儿来说,其实就是重写了URL,最大的好处便于搜索引擎抓取,因

ASP.NET伪静态 UrlRewrite(Url重写) 实现和配置

核心提示:大 家一定经常在网络上看到很多网站的地址后缀都是用XX.HTML或者XX.ASPX等类似静态文件的标示来操作的吧,那么大家有怀疑过他真的是一个一个的 静态生成的文件么,静态文件的生成的优缺有好有坏,对于访问量很大的网站,利用静态文件可提高服务器的运行稳定和速度... 大家一定经常在网络上看到很多网站的地址后缀都是用XX.HTML或者XX.ASPX等类似静态文件的标示来操作的吧,那么大家有怀疑过他真的是一 个一个的静态生成的文件么,静态文件的生成的优缺有好有坏,对于访问量很大的网站,利用

ASP.NET伪静态配置

一.下载URLRewriter.dll 二.在项目中添加URLRewrite的引用 三.配置webconfig 1.在<configuration>节点中添加: 1 <configSections> 2 <section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" /> 3 &

(转)ASP.NET 伪静态

1.伪静态:http://www.cnblogs.com/Default.html 目的就是为了赢得更多的收入,至于真否,待SEOer 解答,正如文字所说,伪静态就是假的静态. 2.准备工作:下载UrlRewrite /Files/Simcoder/URLRewriter.rar 将它放在应用程序bin目录下并引用. 3.配置 IIS 选择主目录 然后 点击配置 找到 "编辑" 找到"插入":C:\WINDOWS\Microsoft.NET\Framework\v2

ASP.NET 实现伪静态网页方法

方法一:利用Httphandler实现URL重写(伪URL及伪静态) 我们有时候会见到这样的地址:“http://www.huoho.com/show-12-34.html”,你或许认为在站点服务器根目录“/”下存在名为“show-12-34.html”的文件,其实实际它可能是不存在的,而可能你看到的内容是“/aspx/show.aspx?type= 12&id=34”的内容,为什么要这样做呢?原因有多个方面:首先是增强URL的友好性,记“show-12-34.html”总比 “/aspx/sh

大家好

http://www.yugaopian.com/people/259723 http://www.yugaopian.com/people/259744 http://www.yugaopian.com/people/259783 http://www.yugaopian.com/people/259824 http://www.yugaopian.com/people/259839 http://www.yugaopian.com/people/259933 http://www.yugao

阿哥吗卡怪每次哦阿哥看啦过啦嘎开吃麻辣个啊蓝光

http://www.xx186.com/web/web_kpic.asp?id=156613http://www.xx186.com/web/web_kpic.asp?id=156608http://www.xx186.com/web/web_kpic.asp?id=156605http://www.xx186.com/web/web_kpic.asp?id=156602http://www.xx186.com/web/web_kpic.asp?id=156600http://www.xx18