zoukankan      html  css  js  c++  java
  • ASP.NET中实现二级或多级域名(修改UrlRewrite)

    ASP.NET中实现二级或多级域名(修改UrlRewrite) 
     
    摘自:http://www.cnblogs.com/jzywh/archive/2005/09/29/246650.html 
     
    大家应该知道,微软的URLRewrite能够对URL进行重写,但是也只能对域名之后的部分进行重写,而不能对域名进行重写,如:可将 http://http://www.abc.com//1234/  重写为 http://www.abc.com/show.aspx?id=1234  但不能将 
    http://1234.abc.com/  重写为  http://www.abc.com/show.aspx?id=1234。 

    要实现这个功能,前提条件就是  http://www.abc.com/ 是泛解析的,再就是要修改一下URLRewriter了。 
    总共要修改2个文件 

    1.BaseModuleRewriter.cs 

    ASP.NET中实现二级或多级域名(修改UrlRewrite) - luiweiping-002 - 〖下里巴人〗protected virtual void BaseModuleRewriter_AuthorizeRequest(object sender, EventArgs e) 
    ASP.NET中实现二级或多级域名(修改UrlRewrite) - luiweiping-002 - 〖下里巴人〗ASP.NET中实现二级或多级域名(修改UrlRewrite) - luiweiping-002 - 〖下里巴人〗        ASP.NET中实现二级或多级域名(修改UrlRewrite) - luiweiping-002 - 〖下里巴人〗
    ASP.NET中实现二级或多级域名(修改UrlRewrite) - luiweiping-002 - 〖下里巴人〗            HttpApplication app = (HttpApplication) sender; 
    ASP.NET中实现二级或多级域名(修改UrlRewrite) - luiweiping-002 - 〖下里巴人〗            Rewrite(app.Request.Path, app); 
    ASP.NET中实现二级或多级域名(修改UrlRewrite) - luiweiping-002 - 〖下里巴人〗        } 

    改为 

    ASP.NET中实现二级或多级域名(修改UrlRewrite) - luiweiping-002 - 〖下里巴人〗protected virtual void BaseModuleRewriter_AuthorizeRequest(object sender, EventArgs e) 
    ASP.NET中实现二级或多级域名(修改UrlRewrite) - luiweiping-002 - 〖下里巴人〗ASP.NET中实现二级或多级域名(修改UrlRewrite) - luiweiping-002 - 〖下里巴人〗        ASP.NET中实现二级或多级域名(修改UrlRewrite) - luiweiping-002 - 〖下里巴人〗
    ASP.NET中实现二级或多级域名(修改UrlRewrite) - luiweiping-002 - 〖下里巴人〗            HttpApplication app = (HttpApplication) sender; 
    ASP.NET中实现二级或多级域名(修改UrlRewrite) - luiweiping-002 - 〖下里巴人〗            Rewrite(app.Request.Url.AbsoluteUri, app); 
    ASP.NET中实现二级或多级域名(修改UrlRewrite) - luiweiping-002 - 〖下里巴人〗        } 


    就是将  app.Request.Path 替换成了  app.Request.Url.AbsoluteUri 

    2.ModuleRewriter.cs 

    ASP.NET中实现二级或多级域名(修改UrlRewrite) - luiweiping-002 - 〖下里巴人〗for(int i = 0; i < rules.Count; i++) 
    ASP.NET中实现二级或多级域名(修改UrlRewrite) - luiweiping-002 - 〖下里巴人〗ASP.NET中实现二级或多级域名(修改UrlRewrite) - luiweiping-002 - 〖下里巴人〗            ASP.NET中实现二级或多级域名(修改UrlRewrite) - luiweiping-002 - 〖下里巴人〗
    ASP.NET中实现二级或多级域名(修改UrlRewrite) - luiweiping-002 - 〖下里巴人〗                // get the pattern to look for, and Resolve the Url (convert ~ into the appropriate directory) 
    ASP.NET中实现二级或多级域名(修改UrlRewrite) - luiweiping-002 - 〖下里巴人〗                string lookFor = "^" + RewriterUtils.ResolveUrl(app.Context.Request.ApplicationPath, rules.LookFor) + "$"; 
    ASP.NET中实现二级或多级域名(修改UrlRewrite) - luiweiping-002 - 〖下里巴人〗 
    ASP.NET中实现二级或多级域名(修改UrlRewrite) - luiweiping-002 - 〖下里巴人〗                // Create a regex (note that IgnoreCase is setASP.NET中实现二级或多级域名(修改UrlRewrite) - luiweiping-002 - 〖下里巴人〗
    ASP.NET中实现二级或多级域名(修改UrlRewrite) - luiweiping-002 - 〖下里巴人〗                Regex re = new Regex(lookFor, RegexOptions.IgnoreCase); 
    ASP.NET中实现二级或多级域名(修改UrlRewrite) - luiweiping-002 - 〖下里巴人〗 
    ASP.NET中实现二级或多级域名(修改UrlRewrite) - luiweiping-002 - 〖下里巴人〗                // See if a match is found 
    ASP.NET中实现二级或多级域名(修改UrlRewrite) - luiweiping-002 - 〖下里巴人〗                if (re.IsMatch(requestedPath)) 
    ASP.NET中实现二级或多级域名(修改UrlRewrite) - luiweiping-002 - 〖下里巴人〗ASP.NET中实现二级或多级域名(修改UrlRewrite) - luiweiping-002 - 〖下里巴人〗                ASP.NET中实现二级或多级域名(修改UrlRewrite) - luiweiping-002 - 〖下里巴人〗
    ASP.NET中实现二级或多级域名(修改UrlRewrite) - luiweiping-002 - 〖下里巴人〗                    // match found - do any replacement needed 
    ASP.NET中实现二级或多级域名(修改UrlRewrite) - luiweiping-002 - 〖下里巴人〗                    string sendToUrl = RewriterUtils.ResolveUrl(app.Context.Request.ApplicationPath, re.Replace(requestedPath, rules.SendTo)); 
    ASP.NET中实现二级或多级域名(修改UrlRewrite) - luiweiping-002 - 〖下里巴人〗 
    ASP.NET中实现二级或多级域名(修改UrlRewrite) - luiweiping-002 - 〖下里巴人〗                    // log rewriting information to the Trace object 
    ASP.NET中实现二级或多级域名(修改UrlRewrite) - luiweiping-002 - 〖下里巴人〗                    app.Context.Trace.Write("ModuleRewriter", "Rewriting URL to " + sendToUrl); 
    ASP.NET中实现二级或多级域名(修改UrlRewrite) - luiweiping-002 - 〖下里巴人〗 
    ASP.NET中实现二级或多级域名(修改UrlRewrite) - luiweiping-002 - 〖下里巴人〗                    // Rewrite the URL 
    ASP.NET中实现二级或多级域名(修改UrlRewrite) - luiweiping-002 - 〖下里巴人〗                    RewriterUtils.RewriteUrl(app.Context, sendToUrl); 
    ASP.NET中实现二级或多级域名(修改UrlRewrite) - luiweiping-002 - 〖下里巴人〗                    break;        // exit the for loop 
    ASP.NET中实现二级或多级域名(修改UrlRewrite) - luiweiping-002 - 〖下里巴人〗                } 
    ASP.NET中实现二级或多级域名(修改UrlRewrite) - luiweiping-002 - 〖下里巴人〗            } 

    改为 

    ASP.NET中实现二级或多级域名(修改UrlRewrite) - luiweiping-002 - 〖下里巴人〗for(int i = 0; i < rules.Count; i++) 
    ASP.NET中实现二级或多级域名(修改UrlRewrite) - luiweiping-002 - 〖下里巴人〗ASP.NET中实现二级或多级域名(修改UrlRewrite) - luiweiping-002 - 〖下里巴人〗            ASP.NET中实现二级或多级域名(修改UrlRewrite) - luiweiping-002 - 〖下里巴人〗
    ASP.NET中实现二级或多级域名(修改UrlRewrite) - luiweiping-002 - 〖下里巴人〗                // get the pattern to look for, and Resolve the Url (convert ~ into the appropriate directory) 
    ASP.NET中实现二级或多级域名(修改UrlRewrite) - luiweiping-002 - 〖下里巴人〗                string lookFor = "^" + rules.LookFor + "$"; 
    ASP.NET中实现二级或多级域名(修改UrlRewrite) - luiweiping-002 - 〖下里巴人〗 
    ASP.NET中实现二级或多级域名(修改UrlRewrite) - luiweiping-002 - 〖下里巴人〗                // Create a regex (note that IgnoreCase& ...
  • 相关阅读:
    2.Servlet基础
    3.AOP入门1
    1.Tomcat配置
    Linq学习(一)-初涉Linq
    Linq学习(零)-错误汇总
    Intellij IDEA14配置
    大数据插入Excel报错处理
    VS插件-Resharper
    SVN异常处理(五)-状态小图标不见了
    SVN系列学习(四)-TortoiseSVN其他操作
  • 原文地址:https://www.cnblogs.com/zhiji6/p/1649374.html
Copyright © 2011-2022 走看看