【问题标题】:how to solve mistake in url rewriting?如何解决url重写中的错误?
【发布时间】:2016-04-07 03:01:26
【问题描述】:

我正在使用Intelligencia.UrlRewriter 重写 web 表单 asp.net 中的 url。 我有一个从 url.com/page.aspx?id=10 重写为 url.com/page/10/

的补丁

要重写我使用以下代码:

<rewriter>
<rewrite url="~/page/([0-9]+)/?$*[/]" to="~/Page.aspx?Id=$1"/>

这个方法效果很好,但是这里有个错误: 当我尝试这条路时:

 url.com/page/10/dada/asd/asda/da/sd/etc../

我会看到的内容

url.com/page.aspx?id=10

这对 seo 不利。

我想要这个: 重定向自:

url.com/page/10/dada/asd/asda/da/sd/etc../

url.com/page/10/

我该如何解决这个问题?

【问题讨论】:

  • ...第一个 URL 的重写目标究竟应该是什么?
  • 我想从 url.com/page/10/dada/asd/asda/da/sd/etc../ 重定向到 url.com/page/10/

标签: asp.net url iis seo rewriting


【解决方案1】:

为此目的使用路由:

首先,创建 Global.asax 文件。

将以下代码添加到 Global.asax 的标题部分:

<%@ Import Namespace="System.Web.Routing" %>

然后将Application_Start方法改成如下:

void Application_Start(object sender, EventArgs e) 
{
    RegisterRoutes(RouteTable.Routes);
}

并添加RegisterRoutes方法:

void RegisterRoutes(RouteCollection routes)
{
    routes.MapPageRoute("", "Page/{page_id}", "~/Page.aspx");
}

在你的 Page.aspx 中使用下面的代码来读取路由值:

if (Page.RouteData.Values["page_id"] != null){
    //do anything what you need. For example, ShowPageValuesByPageID(Page.RouteData.Values["page_id"].ToString());
    //ShowPageValuesByPageID is your method
}

【讨论】:

  • 然后你会使用next打开任意页面:url.com/Page/10, url.com/Page/11, url.com/Page/100, 等等...
猜你喜欢
  • 1970-01-01
  • 2020-03-29
  • 1970-01-01
  • 2019-02-07
  • 1970-01-01
  • 2014-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多