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;
        }


  • 相关阅读:
    C# Bitmap类型与Byte[]类型相互转化
    博客园添加个人Github链接
    C# Exception has been thrown by the target of an invocation(调用的目标已抛出异常) 解决办法
    C# 使用Renci.SshNet连接SSH远程服务器
    Oracle 查询当前数据库版本信息
    Oracle ORA-12569: TNS:包校验和失败
    Oracle Rollup()函数
    Oracle 字符串补零
    DataGridView 表格排序后颜色丢失
    DataGridView 实现最后一列的宽度自适应
  • 原文地址:https://www.cnblogs.com/zitjubiz/p/Simple_URL_ReWrite.html
Copyright © 2011-2022 走看看