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 description for UrlRewriter /// p...
实现伪静态的代码如下。
首先,加载用到的类。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.Data.SqlClient;
using Norco.DAL;
/
///
/// Summary description for UrlRewriter
///
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());
}
}
/**/
///
/// 实现“IHttpHandler”接口所必须的成员
///
///
/// Author:yoyo
/// www.
public bool IsReusable
{
get { return false; }
}
}
然后,在在web.config添加:
最后,配置增加对shtml后缀的类ASPX处理。
完成以上三步,即可实现asp.net中伪静态页面,有兴趣的朋友,自己动手测试下吧。