0

我的域曾经指向一个 wordpress 网站,我在该网站上使用以下格式设置了特定页面:

www.mydomain.com/product/awesome-thing
www.mydomain.com/product/another-thing

最近我转移了我的域,现在它指向我网站的 MVC 版本。上面提到的链接不再有效,但是 wordpress 站点仍然存在于不同的域中。我正在尝试让我的 mvc 站点吸收以前的链接并将它们转发到

http://mydomain.wordpress.com/product/awesome-thing 
http://mydomain.wordpress.com/product/another-thing

我现在拥有的是以下内容RouteConfig.cs

routes.MapRoute(
            name: "product",
            url: "product/{id}",
            defaults: new { controller = "product", action = "redirect", id = UrlParameter.Optional });

在我的产品控制器中,我有以下内容

public void redirect(string id)
{
   if (id == "awesome-thing")
        {
            Response.Redirect("http://mydomain.wordpress.com/product/awesome-thing ");
        }
        if (id == "another-thing")
        {
            Response.Redirect("http://mydomain.wordpress.com/product/another-thing");
        }
        Response.Redirect(" http://mydomain.wordpress.com/");
}

但是我的路由RouteConfig.cs没有与我的控制器正确链接。我不断收到“404 找不到资源”错误。

4

1 回答 1

0

我设法通过重新排序我的地图路线来解决这个问题。我还稍微更改了控制器和 maproute 中的代码,以下代码最终正常工作。

routes.MapRoute(
          name: "productAwesome",
          url: "product/awesome-thing",
          defaults: new { controller = "product", action = "redirectAwsome" });

routes.MapRoute(
         name: "productAnother",
         url: "product/another-thing",
         defaults: new { controller = "product", action = "redirectAnother" });

//it's important to have the overriding routes before the default definition. 
routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );

然后在产品控制器中我添加了以下内容:

public class productController : Controller
{

    public void redirectAwsome()
    {
        Response.Redirect("http://mydomain.wordpress.com/product/awesome-thing ");
    }
    public void redirectAnother()
    {
        Response.Redirect("http://mydomain.wordpress.com/product/another-thing");
    }
}
于 2013-10-25T20:26:29.917 回答