我有一大堆需要301重定向的网址。我已经设置了许多路线作为“捕获”的路线。对于各种301,但我似乎已经创建了一个重定向循环。
有人可以确认 - 以下是否是有效的网址并强制参数仅来自管道分隔列表(即如果值不匹配,则路线赢了&#39 ;抓住)
routes.MapRoute("MyRouteName", // Route name
"first-folder/second-folder/{param1}", // URL with parameters
new
{
controller = "Redirect",
action = "MyRedirectHandler",
newRouteName = "mynewroute",
folder1= "foo",
folder2 = "bar",
set = "option1|option2|option3"
});
所以,在这种情况下:
mysite.com/first-folder/second-folder/option1
=> mysite.com/mynewroute/foo/bar
mysite.com/first-folder/second-folder/option2
=> mysite.com/mynewroute/foo/bar
mysite.com/first-folder/second-folder/option88
=> 404
set
中的params仅用于捕获url,我的MyRedirectHandler
是一个控制器操作,它将执行我在newRouteName
中指定的路由301。
答案 0 :(得分:1)
行, 我发布的太快了。对于遇到类似问题的任何人来说,这个循环归结为Route param默认值和param约束之间的差异。上面的例子应该是:
tr