2011-12-28 4 views
0

Я занимаюсь разработкой ASP.NET 3.5 application.I нужно переписать текущий URL url.My является,перезаписи URL в ASP.NET 3.5

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

Этот URL будет очень долго и не пользователь freindly.So мне нужно, чтобы уменьшить этот адрес в следующий адрес,

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

Здесь querystrings как EventID и статус динамически generating.So мы должны передать это querystrings dynamically.so мы не можем задать эти значения ,

Мы пробовали тег в web.config.but, это не полезно. Потому что здесь мы не можем передавать динамические значения в web.config.

Так что, пожалуйста, скажите мне, как это сделать. Есть ли какое-либо приложение в Интернете, пожалуйста, дайте мне URL-адрес.

Заранее спасибо.

ответ

0

Я не знаю, поможет ли это, но, возможно, кто-то в будущем может это использовать. Мы используем следующий код для перезаписи 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); 
      }    
     } 
    } ` 
Смежные вопросы