我将以SO网站为例。要查看问题列表,请访问www.stackoverflow.com/questions。在场景后面,这将转到控制器(其名称未知)和其中一个操作。假设这是 controller = home 和 action = questions 。
如何阻止用户输入www.stackoverflow.com/home / 问题,这会导致相同的网页,并会降低目前的网页排名作为SEO而言。是否需要重定向才能解决此问题?是否需要一些特殊的路由规则来处理这种情况?还有别的吗?
由于
答案 0 :(得分:1)
我假设控制器是questions
,操作是index
,即路由处理程序定义的默认操作。因此,没有替代页面的路径。
答案 1 :(得分:1)
在Phil Haack's presentation from PDC期间,Jeff展示了Stack Overflow的一些源代码。他展示的内容包括一些路线注册的代码。他在控制器中有这些,我不清楚他是否使用默认路线。例如,没有默认路由,您无需担心/ home / questions。
对于/ questions / index,是的,永久重定向是可行的方法。对于永久重定向,您不会受到任何搜索引擎惩罚。
消除/ home / questions的另一种方法是使用路由约束。
答案 2 :(得分:1)
您想使用以下路线。您只需创建一条新路线就可以轻松实现,从而无需控制器进入路线。您创建一个仅包含该操作的模板字符串,并将控制器默认为您要使用的控制器,例如“Home”。
routes.MapRoute(
"MyRoute",
"{action}",
new { controller = "Home", action = (string)null },
new { action = "[a-zA-z_]+" }
);
希望这有帮助。