在我的ASP.NET MVC 4应用程序中,我有很多控制器和操作。
默认的路由配置是:
routes.Add(
new Route(
url: "{controller}/{action}/{id}",
defaults: new RouteValueDictionary(
new {
controller = "MyController",
action = "Home",
id = UrlParameter.Optional
}
),
routeHandler: new MvcRouteHandler()
)
);基于此默认路由配置,以下列方式访问操作(控制器的方法):
http://example.com/controller/action/5
但是,也可以通过以下方式访问它们:
http://example.com/controller/action?id=5
这对SEO (复制内容)是有害的。
是否有一般方法将(301)第二个请求(带有查询字符串)重定向到第一个请求(没有查询字符串的请求)?
有多个参数具有可变参数名的操作,我想不出一个简单的解决方案。
发布于 2013-12-27 17:09:38
如果它用于SEO优化,那么您可以使用规范的Url,如果将其添加到example.com/控制器/action?id=5页上,就可以防止搜索引擎对页面进行重复索引,这样做的目的是让搜索引擎知道--不要将其复制为不同的内容。
https://stackoverflow.com/questions/20802272
复制相似问题