ASP.NET实现伪静态

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Web;
 5 using System.Text;
 6 using System.Text.RegularExpressions;
 7
 8 /// <summary>
 9 ///UrlRewriter 伪静态Url重写
10 /// </summary>
11 public class UrlRewriter:IHttpHandler
12 {
13     /// <summary>
14     /// 自定义 HttpHandler
15     /// </summary>
16     /// <param name="context"></param>
17     public void ProcessRequest(HttpContext context)
18     {
19         try
20         {
21             string url = context.Request.RawUrl;//获取用户请求的URL地址信息
22             Regex Reg = new Regex(@"/detail-(\d+)-(\d+)\..+", RegexOptions.IgnoreCase);//建立正则表达式
23             Match m = Reg.Match(url, url.LastIndexOf("/"));//用正则表达式进行URL字符串
24             if (m.Success)//匹配成功
25             {
26                 string RealPath = @"~/admin/detail.aspx?type=" + m.Groups[1] + "&id=" + m.Groups[2];//重定向真实的地址信息
27                 context.Server.Execute(RealPath);
28             }
29             else
30             {
31                 context.Response.Redirect(context.Request.Url.ToString());
32             }
33
34         }
35         catch (Exception ex)
36         {
37             context.Response.Redirect(context.Request.Url.ToString());
38         }
39     }
40
41     /// <summary>
42     ///  如果 System.Web.IHttpHandler 实例可再次使用,则为 true;否则为 false。
43     /// </summary>
44     public bool IsReusable
45     {
46         get { return false; }
47     }
48 }
 1 <?xml version="1.0"?>
 2 <configuration>
 3 <system.web>
 4   <httpHandlers>
 5     <!--使用自定义UrlRewriter类-->
 6     <add verb="*" path="*/detail-?*-?*.html" type="UrlRewriter"/>
 7     </httpHandlers>
 8     <compilation debug="true" targetFramework="4.0"/>
 9   </system.web>
10 </configuration>
 1 <!--使用微软URLRewriter.dll 配置文件-->
 2 <?xml version="1.0"?>
 3 <configuration>
 4   <!--使用URLRewriter.dll -->
 5 <configSections>
 6   <section name="RewriterConfig" requirePermission="false" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />
 7 </configSections>
 8
 9 <RewriterConfig>
10   <Rules>
11     <RewriterRule>
12       <LookFor>~/detail/([0-9]*)/([0-9]*).html</LookFor>
13       <SendTo>~/admin/detail.aspx?type=$1&amp;id=$2</SendTo>
14     </RewriterRule>
15   </Rules>
16 </RewriterConfig>
17
18 <system.web>
19   <httpHandlers>
20     <!--使用URLRewriter.dll    -->
21   <add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
22   <add verb="*" path="*.html" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
23
24 </httpHandlers>
25     <compilation debug="true" targetFramework="4.0"/>
26   </system.web>
27 </configuration>
时间: 2024-11-16 09:28:06

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

ASP.NET MVC 伪静态的实现

public class RouteConfig { public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute("Category", "list/{filterAttr}-{cateId}-{brandId}-{sortColumn}-{page}.html&qu

ASP.NET URL伪静态重写实现方法

ASP.NET URL伪静态重写实现方法 首先说下,ASP.NET URL伪静态只是将~/a_1.html指向到了~/a.aspx?ID=1,但a.aspx还是真实存在的,你不用./a_1.html来访问,用./aaa.aspx?ID=1也是可以访问的,伪静态并会真的把你的a.aspx变为a.html 在web.config里设置如下: <?xml version="1.0" encoding="utf-8" ?> <!--overred-->

利用URLRewriter.dll 实现ASP.NET实现伪静态

大家一定经常在网络上看到很多网站的地址后缀都是用XX.HTML或者XX.ASPX等类似静态文件的标示来操作的吧,那么大家有怀疑过他真的是一个一个的静态生成的文件么,静态文件的生成的优缺有好有坏,对于访问量很大的网站,利用静态文件可提高服务器的运行稳定和速度,坏处就是生成列表的时候会因为增加一条记录从而需要所有相关的列表进行重构,当然不排除有的公司已经攻克的这个问题,但对于大众程序员来说,他依旧是个问题,而且生成的化对于中小型网站也不一定会比动态的号,因为管理比较麻烦. 结构以上事实,然后伪静态技

ASP.NET网站伪静态下使用中文URL

首先解释一下,什么是中文URL呢?它并不是我们常见的把汉字编码为 %CF%EC 这种形式,而是在URL中直接使用汉字 这种形式目前还不是很多见.因为不同的浏览器处理起来可能会有所不同,不过据我测试,IE8和Firefox是完全支持的. 它的好处是可以使用链接地址看起来非常直观易懂!搜索引擎也支持. 先讲一下我的ASP.NET网站的伪静态,我的文件都是以.htm结尾的,实际上是动态的ASP.方法是:在后台将htm映射为aspx文件. 伪静态的规则,是在web.config文件中定义的. 形式一:

asp.net mvc5 伪静态

asp.net mvc5 伪静态 WebForm Mvc4和5通用 1.背景:老项目WebForm开发 需要 融合到新项目Mvc5开发 2.需求:Url地址TruckDetail.aspx?id=455 达到效果 truck/455.html 3.不是最佳方案,但是个过度项目所以达到效果ok,欢迎丢转. 第一步:继承IRouteHandler public class OldWebFormsRouteHandler : IRouteHandler { private string pageNam

Asp.net创建伪静态页面

下面是我研究了好几天和同事一起才研究出来的,原创. 1伪静态的定义: 伪静态是相对真实静态来讲的,通常我们为了增强搜索引擎的友好面,都将文章内容生成静态页面,但是有的朋友为了实时的显示一些信息.或者还想运用动态脚本解决一些问题.不能用静态的方式来展示网站内容.但是这就损失了对搜索引擎的友好面.怎么样在两者之间找个中间方法呢,这就产生了伪静态技术.就是展示出来的是以html一类的静态页面形式,但其实是用ASP一类的动态脚本来处理的. 2伪静态的实现: 2.1创建URL重写类URLRewiter.c

Webserver asp配置及伪静态设置

Webserver  IIS asp配置及伪静态设置 一.概述: 在Windows Server 2003系统中,用户可以借助IIS 6.0配置基于ASP.PHP.asp.NET等语言的动态Web网站.动态Web网站基于数据库技术,能够实现较为全面的功能.动态网站具有交互性强.自动发布信息等特点,更适合公司.企业使用. 二.配置asp: 1.iis中创建网站: 2.启用目录(目录浏览) 3.启用父路径(asp) 4.添加index.asp(默认文档) 5.启用32应用程序(程序池) 三.配置伪静

asp.net mvc 伪静态路由配置

asp.net mvc实现伪静态路由必须按如下方式设置好,才能访问 .htm 或者.html页面 C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll 来自为知笔记(Wiz)

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 获得伪静态网址解决微信sdk签名问题

手机网站是asp.net c#编写的,前几天因为要使用微信SDK在手机网站页面使用分享功能,但是程序使用了伪静态功能.如果原地址是:http://ww.xx.com/news/show.aspx?id=233.转化过的伪静态地址为http://ww.xx.com/news/show-233.aspx.sdk签名中需要使用使用获得浏览器的动态网址为加入算法作为签名,试了好几种方法都不行.最后找到解决方法,可以使用Request.RawUrl获得伪静态的页面地址.如果大家有更好的方法也可以说下 测试