2013-04-18 91 views
2

我有一個旅遊相關的Web應用程序在我的網址看起來像網址在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 goa都被pid和cid取值。

幫幫我。

在此先感謝

[編輯:改革]

回答

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> 

[編輯:下面就可以一個解決方案]

確定。所以,當你說你需要檢查pidcid所以相應地重定向,

一種方式來實現這一目標是低於,

  • Request.QueryString("Pid")Request.QueryString("Cid")
  • 它們存儲到一些變量,
  • 檢查這些變量具有一些切換...機制並根據通過的條件設置路徑使用Context.ReWritePath("Your Specified Path")

另一種方式來做到這一點是使用數據庫,

  • 創建一個包含三列,pidcidlocation_path
  • 現在得到的cidpid採用上面的SQL查詢中提到Request.QueryString
  • 表,從表中選擇與cidpid匹配的位置,並使用Request.QueryString獲取,並使用Context.ReWritePath

希望你現在明白這一點。

希望它有幫助。

+0

它是seo友好的... – social

+1

好吧,我不確定搜索引擎優化,你必須現場測試確認。 –

+0

謝謝先生,其實我有很多軟件包,所以ids(Pid = 2&Cid = 8)會超過200,所以請告訴我如何動態地(使用正則表達式/模式匹配)我達到這個目標,我不想處理它作爲硬編碼。 – social