如果您创建一个新的asp.net mvc网站,Global.asax.cs
中的默认路由如下:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
}
这意味着以下网址都解析为同一页面。
如果有人点击mysite.com/home
或mysite.com/home/index
,我希望网址为mysite.com
。这是它的最佳网址。此外,这意味着谷歌和其他搜索引擎不认为我有重复的内容。
我该怎么做?
答案 0 :(得分:0)
您可以尝试两种选择:
您也可以致电
context.Response.RedirectPermanently("mysite.com"); // you can do this in custom httphandler
如果有人点击mysite.com/home或mysite.com/home/index
不确定这是否会解决您的Google搜索引擎内容重复问题。
答案 1 :(得分:0)
此答案并非特定于ASP.NET MVC,因为您可以在任何页面上使用此答案来确认内容的正确规范页面...例如,如果您访问
www.stevefenton.co.uk/Content/Home/
您将在文档的开头看到以下元素......
<link rel="canonical" href="http://www.stevefenton.co.uk/">
这向网络抓取工具确认该网页的主地址实际上是根页。
要使这个特定于您的ASP.NET MVC页面,最好的办法是确保始终链接到您的地址的正确变体,以便所有链接指向正确的位置。网页抓取工具会关注您的链接(与您的用户一样),因此如果您的链接正确,他们会为这些链接编制内容索引。