asp.net伪静态(URL重写)代码一例

发布时间:2020-03-02编辑:脚本学堂
本文介绍下,用asp.net实现伪静态页面,即url重写的一个实例代码,有需要的朋友,可以参考下。

实现伪静态的代码如下。

首先,加载用到的类。
 

复制代码 代码示例:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.Data.SqlClient;
using Norco.DAL;
/
/// <summary>
/// Summary description for UrlRewriter
/// </summary>
public class SupportWJ : IHttpHandler
{
public SupportWJ()
{
//
// TODO: Add constructor logic here
//
}
public void ProcessRequest(HttpContext Context)
{
try
{
//取得原始URL屏蔽掉参数
string Url = Context.Request.RawUrl;
//建立正则表达式
//string sql = "insert into test(TestName) values(@test)";
//SqlParameter tmp = new SqlParameter("@test", SqlDbType.NVarChar, 2500);
//tmp.Value = Url;

//DbAccess.SQLExecuteNoneQuery(sql, tmp);
System.Text.RegularExpressions.Regex Reg = new System.Text.RegularExpressions.Regex(@"/NORCO-Support-(d+).shtml", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
//用正则表达式进行匹配
System.Text.RegularExpressions.Match m = Reg.Match(Url, Url.LastIndexOf("/NORCO-Support-"));//从最后一个“/”开始匹配

//String RealPath = @"/about.aspx?id=" + m.Groups[1];
if (m.Success)//匹配成功
{
String RealPath = @"/Servers.aspx?sid=" + m.Groups[1];

//string sql = "insert into test(TestName) values(@test)";
//SqlParameter tmp = new SqlParameter("@test", SqlDbType.NVarChar, 50);
//tmp.Value = RealPath;
 

//DbAccess.SQLExecuteNoneQuery(sql, tmp);
 

//Context.Response.Write(RealPath);
//Context.RewritePath(RealPath);//(RewritePath 用在无 Cookie 会话状态中。)
Context.Server.Execute(RealPath);
}
else
{
Context.Response.Write("404 ERROR!");
}
}
catch
{
Context.Response.Redirect(Context.Request.Url.ToString());
}
}
/**/
/// <summary>
/// 实现“IHttpHandler”接口所必须的成员
/// </summary>
/// <value></value>
/// Author:yoyo
/// www.jb200.com
public bool IsReusable
{
get { return false; }
}

}

然后,在在web.config添加:
 

<add verb="GET" path="*/NORCO-Support-*.shtml" type="SupportWJ"/>

最后,配置增加对shtml后缀的类ASPX处理。

完成以上三步,即可实现asp.net中伪静态页面,有兴趣的朋友,自己动手测试下吧。