zoukankan      html  css  js  c++  java
  • 最简单的URLReWrite的方法

    网上一般都是写HttpModule,但这个写法在IIS7就Out了.

    IIS7 的管道模式直接在web.config就可以配置了.

    Web.config
    <configuration>
        
    <!-- these for IIS7 url rewrite-->
        
    <system.webServer>
            
    <rewrite>
                
    <rules>
                    
    <rule name="Rewrite to Items.aspx">
                        
    <match url="^article/([0-9]+).html$" />
                        
    <action type="Rewrite" url="article.aspx?newid={R:1}" />
                    
    </rule>
                
    </rules>
            
    </rewrite>
        
    </system.webServer>
    </configuration>


    或者用另一种简单的方法,就是Global.asax里面写

    代码
        protected void Application_BeginRequest(object sender, EventArgs e)
        {
            Context.RewritePath(UrlRewrite(Request.RawUrl));
        }
        
    //Reg Expression to Decode SEO url to xxx.aspx?a=1&b=2 format for Context.RewritePath
        public static string UrlRewrite(string SEOUrl)
        {
            
    string VPath = Request.ApplicationPath + "/";

            Regex regProd 
    = new Regex(VPath+"Products_(\\w+)_(\\d).aspx", RegexOptions.IgnoreCase);
            
    if (regProd.IsMatch(SEOUrl))
            {
                Match M 
    = regProd.Match(SEOUrl);
                
    string CategoryId = M.Groups[1].Value; //"BUGS";
                string PageIndex = M.Groups[2].Value;//"0";
                return string.Format(VPath + "Products.aspx?page={0}&categoryId={1}", PageIndex, CategoryId);
            }

            Regex regItem 
    = new Regex(VPath + "Items_(\\w+)_([a-zA-Z0-9_-]+).aspx", RegexOptions.IgnoreCase);
            
    if (regItem.IsMatch(SEOUrl))
            {
                Match M 
    = regItem.Match(SEOUrl);
                
    string CategoryId = M.Groups[1].Value; //"BYARD";
                string productId = M.Groups[2].Value;//"BY-01";

                
    return string.Format(VPath + "Items.aspx?productId={0}&categoryId={1}", productId, CategoryId);
            }

            
    return SEOUrl;
        }


  • 相关阅读:
    常见的mysql查询命令
    Linux查看系统硬件信息命令汇总
    抓取页面上的email邮箱
    inotify+rsync实时同步【优化版本-转发】
    inotify+rsync做实时同步
    用配置文件里面的参数值替换yaml模板中的变量值【python】
    合并文件内容到另一个文件尾部[python]
    python farbric 主机/密钥列表配置
    python 项目环境包的名称和版本导出和导入
    sendmai.py
  • 原文地址:https://www.cnblogs.com/zitjubiz/p/Simple_URL_ReWrite.html
Copyright © 2011-2022 走看看