2013-04-18 2 views
2

У меня есть веб-приложение, связанное путешествия, в котором мой URL выглядитперезаписи URL в ASP.NET 3.5 с несколькими строки запроса

MyTravel/Tour/Inner.aspx?Pid=2&Cid=8 

и

MyTravel/Tour/Inner.aspx?Pid=2&Cid=8&DeptF=ND 

Теперь я хочу перезаписи URL на моем приложении, как

MyTravel/Tour/Goa/new-year-goa 

здесь goa и новый год goa получены значениями pid и cid.

Помогите мне.

Заранее спасибо

[EDIT: Реформация]

ответ

2

URL переписывания может быть сделано следующим образом,

void Application_BeginRequest(object sender, EventArgs e) { 

    string fullOrigionalpath = Request.Url.ToString(); 

    if (fullOrigionalpath.Contains("/Tour/Inner.aspx?Pid=2&Cid=8")) { 
     Context.RewritePath("/Tour/Goa/new-year-goa"); 
    } 
    else if (fullOrigionalpath.Contains("/Tour/Inner.aspx?Pid=2&Cid=8&DeptF=ND")) { 
     Context.RewritePath("/Tour/Goa/new-year-goa"); 
     //This can be something else according to your requirements. 
    } 
} 

Вы можете посмотреть на этот http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net.aspx

Или же вы можете изменить web.config для достижения цели,

здесь образец,

<?xml version="1.0"?> 

<configuration> 

<configSections> 
<section name="rewriter" 
     requirePermission="false" 
    type="Intelligencia.UrlRewriter.Configuration.RewriterConfigurationSectionHandler, Intelligencia.UrlRewriter" /> 
</configSections> 

<system.web> 

<httpModules> 
    <add name="UrlRewriter" type="Intelligencia.UrlRewriter.RewriterHttpModule, Intelligencia.UrlRewriter"/> 
</httpModules> 

</system.web> 

<rewriter> 
<rewrite url="~/Tour/Inner.aspx?Pid=2&Cid=8" to="~/Tour/Goa/new-year-goa" /> 
//Some other re-writers to achieve specific requirements. 
</rewriter> 

</configuration> 

[EDIT: После Может быть одно решение]

ок. Итак, как вы говорите, что вам нужно проверить pid и cid так перенаправлять соответственно,

Одним из способов для достижения этой цели ниже,

  • Request.QueryString("Pid") и Request.QueryString("Cid")
  • хранить их в некоторых переменных,
  • проверки эти переменные с некоторым механизмом переключения ... и в соответствии с пройденным условием устанавливают путь с использованием Context.ReWritePath("Your Specified Path")

Другой способ сделать это с помощью базы данных,

  • создать таблицу, содержащую три колонки, pid, cid и location_path
  • Теперь получить cid и pid использованием выше Request.QueryString
  • с помощью SQL-запроса , выберите местоположение из таблицы, которое соответствует cid и pid, взятым по Request.QueryString, и установите его с помощью Context.ReWritePath

Надеюсь, это ясно для вас сейчас.

Надеюсь, это поможет.

+0

это seo friendly ... – social

+1

Ну, я не уверен в SEO, вам нужно протестировать его вживую, чтобы подтвердить. –

+0

Спасибо, сэр, На самом деле у меня много пакетов, поэтому ids (Pid = 2 & Cid = 8) мне больше 200, поэтому, пожалуйста, скажите мне, как динамически (с использованием регулярного выражения/сопоставления шаблонов) Я достигаю этой цели, мне не нужна ручка это как жесткий код. – social

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