【问题标题】:Asp.net URL rewriting (regular Expressions)Asp.net URL 重写(正则表达式)
【发布时间】:2011-04-01 19:04:26
【问题描述】:

我有类似的网址

http://somedomain.com/products.aspx?id=1

我想改写这样的

somedomain.com/productname

域中的其余 URL 按提供的方式工作。 喜欢

somedomain.com/forums/categories.aspx

我不想重写这些其他 URL。

【问题讨论】:

  • 什么版本的 .NET?你用的是什么 URL 重写库?
  • 我正在使用这个示例,codeproject.com/KB/aspnet/urlrewriter.aspx 实际上我是 url 重写的新手,如果有人可以建议我任何其他简单的方法,我将不胜感激。谢谢
  • 鉴于 codeproject 示例,您不是在寻找“somedomain.com/product1.aspx”吗?...即替换“?id=1”。
  • 实际上我正在寻找 somedomain.com/product1 只是没有 .aspx 扩展名,所以它类似于 somedomain.com/products.aspx?id=1 == somedomain.com/product1 somedomain。 com/products.aspx?id=2 == somedomain.com/product2
  • 我需要对特定类型的 Angular URL 调用重定向操作,没有正则表达式几乎无法实现

标签: asp.net regex url-rewriting


【解决方案1】:

在你的 global.ascx 文件中这样做

从你重定向的地方,你可以在那里做这样的页面

response.redirect("somedomain.com/productname");

void Application_BeginRequest(对象发送者,EventArgs e) { string fullOrigionalpath = Request.Url.ToString();

    string[] words = fullOrigionalpath.Split('/');
    string d = words[words.Length-1].ToString();
    if (!d.EndsWith("aspx"))
    {
        Context.RewritePath("/products.aspx?id=1);
    }

}

【讨论】:

  • 不仅仅是产品页面,还有其他页面,以后可能会重写。所以,这就是为什么我想通过正则表达式来处理这个问题。 /URLRewriterM/s/h/o/w/(.*)\.html/URLRewriterM/show.aspx?id=$1
猜你喜欢
  • 1970-01-01
  • 2011-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多