转:Global.asax通过Application_BeginRequest()事件实现访问链接的静态地址映射

protected void Application_BeginRequest(Object sender, EventArgs e) {
        
        
string strCurrentPath;
        strCurrentPath 
= Request.Path;
        
//make sure that it ends with aspx.  This is some quick validation on the path. 
        
//This will shortcut processing for images and other files (WebResource.axd, for example). 
        if(System.IO.Path.GetExtension(strCurrentPath).EndsWith(
            
"aspx"true, System.Globalization.CultureInfo.InvariantCulture)) {
            
string strCustomPath;
            
string qString = Request.QueryString.ToString();
            
if(qString != string.Empty)
                qString 
= "&" + qString;
            strCurrentPath 
= strCurrentPath.ToLowerInvariant();
            
string appRoot = GetAppRoot(strCurrentPath);
            
//string pageName = "";
            
// the URL contains this folder name
            
//Response.Write(strCurrentPath);
            if(strCurrentPath.IndexOf("catalog/", StringComparison.InvariantCultureIgnoreCase) > -1) {

                appRoot 
= appRoot.Replace("catalog/""");
                strCustomPath 
= appRoot + "catalog.aspx?guid=" + System.IO.Path.GetFileNameWithoutExtension(strCurrentPath) + qString;

                
// rewrite the URL
                Context.RewritePath(strCustomPath, false);
            }
            
else if(strCurrentPath.IndexOf("product/", StringComparison.InvariantCultureIgnoreCase) > -1) {
                appRoot 
= appRoot.Replace("product/""");

                strCustomPath 
= appRoot + "product.aspx?guid=" + System.IO.Path.GetFileNameWithoutExtension(strCurrentPath);
                
// rewrite the URL

                Context.RewritePath(strCustomPath, 
false);
            }
        }
    }

文章来自学IT网:http:
//www.xueit.com/html/2009-03/21_774_00.html
原文地址:https://www.cnblogs.com/wantingqiang/p/1574583.html