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>
[編輯:下面就可以一個解決方案]
確定。所以,當你說你需要檢查pid
和cid
所以相應地重定向,
一種方式來實現這一目標是低於,
Request.QueryString("Pid")
和Request.QueryString("Cid")
- 它們存儲到一些變量,
- 檢查這些變量具有一些切換...機制並根據通過的條件設置路徑使用
Context.ReWritePath("Your Specified Path")
另一種方式來做到這一點是使用數據庫,
- 創建一個包含三列,
pid
,cid
和location_path
- 現在得到的
cid
和pid
採用上面的SQL查詢中提到Request.QueryString
- 表,從表中選擇與
cid
和pid
匹配的位置,並使用Request.QueryString
獲取,並使用Context.ReWritePath
希望你現在明白這一點。
希望它有幫助。
它是seo友好的... – social
好吧,我不確定搜索引擎優化,你必須現場測試確認。 –
謝謝先生,其實我有很多軟件包,所以ids(Pid = 2&Cid = 8)會超過200,所以請告訴我如何動態地(使用正則表達式/模式匹配)我達到這個目標,我不想處理它作爲硬編碼。 – social