0

我正在使用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/

我该如何解决这个问题?

4

1 回答 1

0

为此目的使用路由:

首先,创建 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
}
于 2016-01-03T12:06:29.457 回答