考虑这种情况,其中/cpanel/x
模式中的所有传入链接都应转换(重新)到/marketer/x
,其中x
代表URL的其余部分。例如:
/cpanel/coupons.aspx
至/marketer/coupons.aspx
/cpanel/sold.aspx?year=2010&product=camera
至/ marketer/sold.aspx?year = 2010& product = camera` 这似乎是一般的URL重写,我们使用HttpContext.Current.RewritePath
和HTTP模块完成了它。但是,我还想知道是否可以使用ASP.NET路由功能在Web表单中完成此操作?
要求是:
答案 0 :(得分:1)
**评论后编辑**
您可以使用使用网络表单进行路由来执行此操作。要获得可以重写10,000个URL的所需功能,只需将“cpanel”替换为“营销人员”,您需要使用通配符。为此,请在Global.asax文件中添加以下命名空间和方法:
<%@ Import Namespace="System.Web.Routing" %>
void RegisterRoutes(RouteCollection routes)
{
routes.Ignore("{resource}.axd/{*pathInfo}");
//--- format ("Name", "Route", "Handler")
routes.MapPageRoute("cPanel", "marketer/{*RouteCPanel}", "~/cpanel/{*RouteCPanel}");
}
void Application_Start(object sender, EventArgs e)
{
// Code that runs on application startup
RegisterRoutes(RouteTable.Routes);
}
注意作为通配符的{* RouteCPanel},这意味着从URL中的那一点到结尾读取所有内容,无论是什么。我们设置它的方式是你可以放任何带有“/ marketer / ....”的URL,它将被重写为“/ cpanel /....."
希望这会有所帮助。祝你好运!