2016-01-03 3 views
0

Я использую Intelligencia.UrlRewriter, чтобы переписать URL-адрес в веб-форме asp.net. У меня есть патч, который переписывает от url.com/page.aspx?id=10 к url.com/page/10/как решить ошибку при перезаписи url?

Переписать Я использую следующий код:

<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

... и что именно должно быть переписывать цель первого URL-адреса? – ViRuSTriNiTy

+0

Я хочу перенаправить с url.com/page/10/dada/asd/asda/da/sd/etc../ TO url.com/page/10/ – user3150241

ответ

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 
} 
+0

И тогда вы будете использовать следующий, чтобы открыть любую страницу: url .com/Page/10, url.com/Page/11, url.com/Page/100 и т. д. ... – Khazratbek

Смежные вопросы