我有一个与旅行相关的网络应用程序,其中我的网址看起来像
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 和 new year goa 由 pid 和 cid 值获取。
帮我。
提前致谢
[编辑:改革]
我有一个与旅行相关的网络应用程序,其中我的网址看起来像
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 和 new year goa 由 pid 和 cid 值获取。
帮我。
提前致谢
[编辑:改革]
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
使用上面提到的Request.QueryString
cid
并使用pid
Context.ReWritePathRequest.QueryString
设置它希望您现在清楚这一点。
希望能帮助到你。