如何解决网址重写中的错误?

时间:2016-01-03 09:55:01

标签: asp.net url iis seo rewriting

我使用Intelligencia.UrlRewriter在网络表单asp.net中重写网址。 我有一个补丁,从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/

我该如何解决这个问题?

1 个答案:

答案 0 :(得分: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
}