htaccess rewriterule语法

时间:2012-05-08 10:55:52

标签: asp.net-mvc .htaccess iis-7 .net-3.5

我想重定向任何以

结尾的网址

../Toolbar/Promote/Default.aspx

/distributionTools

我试过了

RewriteRule ^/Toolbar/Promote/Default.aspx$ /distributionTools [NC,L,R=301]

但是http://htaccess.madewithlove.be/显示这不起作用

2 个答案:

答案 0 :(得分:1)

以下RewriteRule似乎符合您的要求:

RewriteRule ^(.*)Toolbar/Promote/Default.aspx$ /distributionTools [NC,L,R=301]

它匹配以Toolbar/Promote/Default.aspx结尾的所有URI,并重定向到distributionTools

请注意(.*)很重要,如果没有它,它会将foo.com/bar/baz/Toolsbar/Promote/Default.aspx重定向到foo.com/bar / baz / distributionTools`,这可能不是你所期望的。

答案 1 :(得分:0)

如果您使用的是.net 4.0,则可以在.net项目的路径中使用Global.asax文件在应用程序级别执行此操作。

如果尚未存在,只需添加以下代码:

void Application_Start(object sender, EventArgs e) 
{
   // This is the new URL ROuting option in .NET 4
    RegisterRoutes(System.Web.Routing.RouteTable.Routes);
}

void RegisterRoutes(System.Web.Routing.RouteCollection routes)
{
   routes.MapPageRoute("Distribution", "/distributionTools", "~/Toolbar/Promote/Default.aspx");
}

我希望这有帮助!