我使用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/
我该如何解决这个问题?
答案 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
}