ASP.NET MVC 3.0 использует лучший URL - PullRequest
3 голосов
/ 10 июля 2011

При создании нового веб-сайта 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
            );

        }

Это означает, что все следующие URL-адреса разрешаются на одной странице.

  • mysite.com
  • mysite.com / дом
  • mysite.com / дом / индекс

Если кто-нибудь нажмет mysite.com/home или mysite.com/home/index, я хочу, чтобы URL был mysite.com. Это лучший URL для него. Также это будет означать, что Google и другие поисковые системы не думают, что у меня есть дублированный контент.

Как бы я это сделал?

Ответы [ 2 ]

0 голосов
/ 11 июля 2011

Этот ответ не относится к ASP.NET MVC, так как вы можете использовать его на любой странице, чтобы подтвердить правильность канонической страницы для содержимого ... например, если вы посещаете

www.stevefenton.co.uk/Content/Home/

Вы увидите следующий элемент в заголовке документа ...

<link rel="canonical" href="http://www.stevefenton.co.uk/">

Это подтверждает сканерам, что главный адрес страницы на самом деле является корневой страницей.

Чтобы сделать это конкретно для вашей страницы ASP.NET MVC, лучше всего убедиться, что вы всегда ссылаетесь на правильный вариант своего адреса, поэтому все ссылки указывают на правильное место. Сканеры переходят по вашим ссылкам (как и ваши пользователи), поэтому, если ваши ссылки верны, они будут индексировать содержимое этих ссылок.

0 голосов
/ 10 июля 2011

вы можете попробовать два варианта:

  1. Проверьте здесь о том, как создать правило перезаписи URL.
  2. Вы также можете позвонить на

     context.Response.RedirectPermanently("mysite.com"); // you can do this in custom httphandler 
    

Если кто-нибудь нажмет mysite.com/home или mysite.com/home/index

не уверен, если это решит дубликат вашего контента поисковой системы Google.

...