url 可能 为
/men.html?P1=2&P2=3&P4=1&P3=5
/men.html?P2=6&P3=7
/men.html?P1=8
/men.html?P4=9&P5=12
参数个数和参数名称都不确定 如何做URL 重写 url

解决方案 »

  1.   

    什么情况?
    你先得搞清它对这些参数处理逻辑,才好url重写
      

  2.   

    只将men.html重定向为men.aspx就行
    那些不确定参数在pageload里取就行
     foreach (var t in Request.QueryString)
            {
                if (t != null && t.ToString().Trim() != "")
                {
                    Response.Write(t.ToString() + ":" + Request.QueryString[t.ToString()].Trim());
                }
            }
      

  3.   

    /men.html?P1=2&P2=3&P4=1&P3=5
    /men.html?P2=6&P3=7
    /men.html?P1=8
    /men.html?P4=9&P5=12现在不用上面这种形式了 html后面不能再带参数
      

  4.   

    Request.QueryString就是传过来所有的参数连接在一起的串,你重定向时,把Request.QueryString加到你重定下地址后面就可以了
      

  5.   

    不是 我现在前台链接不能以/men.html?P1=2&P2=3&P4=1&P3=5 这种形式显示
    这个重写 已经搞定了假如说我现在前台链接改成
    /men/p1/2/p2/3/p4/1/p3/5.html
    或者/men/p1_2_p2_3_p4_1_p3_3.html
    这个 我的重写规则要怎么写           应为这个参数名称p1 都是不确定的  参数个数也不确定
      

  6.   

    那你从 p1 取到 p100好了没有的自然 就 nothing了P1=&P2=3&P4=&P3=5
      

  7.   

    这取决你用什么样的URL重写方式
      

  8.   

     /// <summary>
        /// 构建Request.QueryString
        /// </summary>
        /// <returns></returns>
        public string GetRequestQuery()
        {
            int queCout = Request.QueryString.Count;
            System.Text.StringBuilder strbu = new System.Text.StringBuilder("");
            //去掉第一个参数
            for (int i = 0; i < queCout; i++)
            {
                if (Request.QueryString.Keys[i] != null)
                {
                    strbu.Append(Request.QueryString.Keys[i].ToString() + "=" + Request.QueryString[i].ToString());
                    strbu.Append(i != queCout - 1 ? "&" : "");
                }
            }
            return strbu.ToString();
        }
      

  9.   

    我都是以f0-fn的方式来解析伪静态页面的。
    比如像你这样的页面
    men.html?P1=2&P2=3&P4=1&P3=5
    /men.html?P2=6&P3=7
    /men.html?P1=8
    /men.html?P4=9&P5=12
    那就要每次都传五个参数。其中不需要的参数可以传无效的参数。如0,调整后为
    men.html?P1=2&P2=3&P3=5&P4=1&P5=0
     /men.html?P1=0&P2=6&P3=7&P4=0&P5=0
     /men.html?P1=8&P2=0&P3=0&P4=0&P5=0
     /men.html?P1=0&P2=0&P3=0&P4=9&P5=12
      

  10.   


    +++
    LZ,你这个设计不科学如果参数个数不确定但是用途都一样的完全可以拼接字符串再传出来
    比如html?p=1,2,3,4,5&xx=test
    这样就好些多了
    在url重写的时候也可以根据你的规则来写匹配
      

  11.   

    可以考虑通过代码来实现这种特殊的rewrite