【问题标题】:Url rewriting in asp.net 3.5在 asp.net 3.5 中重写 URL
【发布时间】:2011-12-28 07:36:29
【问题描述】:

我正在开发一个asp.net 3.5应用程序。我需要重写url。我当前的url是,

http://app.evetos.com/Areas/UserV1/Controllers/Order1.aspx?EventID=JRQlVFOQDYs=&status1=true

这个网址会很长,不方便用户使用。所以我需要将此网址缩减为以下网址,

http://app.evetos.com/Order/G8Oh9WHyAKA=/true

这里,像 EventID 和 status 这样的查询字符串是动态生成的。所以我们需要动态传递这些查询字符串。所以我们不能硬编码这些值。

我们尝试了web.config中的tag。但是没有用。因为这里我们不能传递web.config中的动态值。

所以请告诉我,如何做到这一点。互联网上是否有任何应用程序,请给我网址。

提前致谢。

【问题讨论】:

    标签: asp.net


    【解决方案1】:

    我不知道这是否会有所帮助,但也许将来有人可以使用它。我们使用以下代码进行 URL 重写:

    private void ProcessRequestedURL()
        {
            string paths = "|site|pages|from|navigation|go|here|"; // Follow the format of |xxx|xxx|...|
            string[] parts = Request.Path.Split('/');
    
            if (paths.ToLower().Contains("|" + parts[1].ToLower() + "|") && !parts[2].Contains(".") && !parts[2].ToLower().Contains("presentations"))
            {
                string page = null;
                string directory = null;
                string request = null;
                string rewriteUrl = null;
    
                directory = parts[1];
                page = parts[2];
                request = Regex.Replace(Request.Path, string.Concat("/", directory, "/", page, "/"), "", RegexOptions.IgnoreCase);
    
                rewriteUrl = "/";
                if (parts[1].ToLower() != "vgm") // special case.  "vgm" means site root.
                {
                    rewriteUrl += string.Concat(directory, "/");
                }
    
                if (File.Exists(string.Concat(Request.PhysicalApplicationPath, rewriteUrl, page, ".aspx")))
                {
                    rewriteUrl += string.Concat("", page, ".aspx?req=", request);
                    Context.RewritePath(rewriteUrl);
                }
                else
                {
                    rewriteUrl = string.Concat("/404Error.aspx?aspxerrorpath=", page, ".aspx&req=", request);
                    Context.Response.StatusCode = 404;
                    Context.Response.Redirect(rewriteUrl);
                }               
            }
        } `
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-08
      • 2013-11-08
      • 1970-01-01
      • 1970-01-01
      • 2012-12-02
      • 1970-01-01
      • 2013-04-11
      • 2010-11-19
      相关资源
      最近更新 更多