URL重写也就是让动态页面伪装成“静态页面”,一方面可以隐藏真实的页面文件地址,另一方面对被搜索引擎的也有好处。(在不支持URLWRITE.NET组件的空间里面这是最好的方法)
在ASP.NET中,使用Global.asax可以轻易的实现这个目的,原理简单,具体的代码一看便知:
代码
protected
void
Application_BeginRequest(Object sender, EventArgs e)
{
// article_detail.aspx?id=1 TO article_1.aspx
string oldString = @" (.*)/article_(\d+)\.aspx " ;
string newString = @" article_detail.aspx?id=$2 " ;
System.Text.RegularExpressions.Regex oReg = new System.Text.RegularExpressions.Regex(oldString);
if (oReg.IsMatch(Request.Url.ToString()))
{
string ReWriteUrl = oReg.Replace(Request.Url.ToString(),newString);
HttpContext.Current.RewritePath(ReWriteUrl);
}
oReg = null ;
}
{
// article_detail.aspx?id=1 TO article_1.aspx
string oldString = @" (.*)/article_(\d+)\.aspx " ;
string newString = @" article_detail.aspx?id=$2 " ;
System.Text.RegularExpressions.Regex oReg = new System.Text.RegularExpressions.Regex(oldString);
if (oReg.IsMatch(Request.Url.ToString()))
{
string ReWriteUrl = oReg.Replace(Request.Url.ToString(),newString);
HttpContext.Current.RewritePath(ReWriteUrl);
}
oReg = null ;
}