Переписать URL в ASP .NET MVC 3 - добавить суффикс * .html к ссылкам - PullRequest
0 голосов
/ 29 января 2012

Я создаю простое приложение, какое-то портфолио.Я слышал, что лучше иметь суффикс * .html в ссылках, так как это поможет мне улучшить результаты SEO при индексации с помощью Google ...

В любом случае, есть ли способ изменить маршрутизацию / переписывание по умолчаниюURL, чтобы мои ссылки выглядели так (я использую польские слова, которые они читают для моих посетителей):

domain.pl/index.html
domain.pl/kontakt.html
domain.pl/oferta.html
domain.pl/sklepy.html

И эти ссылки переводятся в один контроллер (например, HomeController ), но {0} из ссылки {0} .html будет использоваться в качестве имени действия?Или, что еще лучше, я хотел бы отобразить {0} из URL-адреса на английские имена действий, например:

index.html = index action
kontakt.html = contact action
oferta.html = offer action
sklepy.html = shops action

Ответы [ 2 ]

8 голосов
/ 29 января 2012

Не уверен в лучших результатах SEO, но добавить суффикс просто, как

        routes.MapRoute(
            "Default",
            "{action}.html",
            new { controller = "Home", action = "Index" }
        );

Просто добавьте .html суффикс к заполнителю параметра действия.

Для перевода вы можете использовать ActionNameAttribute

    [ActionName("kontakt")]
    public ActionResult Contact()
    {
        return View();
    }

С обоими кодами, указанными выше, вы получаете domain.pl/kontakt.html сопоставленное действие Home/Contact.

1 голос
/ 30 января 2012

Как для перевода, так и для суффикса вы можете попробовать использовать AttributeRouting . С этим пакетом вам не нужно настраивать маршруты в вашем Global.asax, и контроллеры будут выглядеть так:

[GET("index.html")]
public ActionResult Index()
{
    return View();
}

[GET("/any/url/path/kontakt.html")]
public ActionResult Contact()
{
    return View();
}

[GET("oferta.html")]
public ActionResult Offer()
{
    return View();
}

Кстати, если вы хотите удалить дублированный .html для каждого атрибута, вы можете создать свой собственный атрибут, который расширяет GETAttribute, и добавлять .html. Это было бы полезно, если у вас есть много страниц для настройки.

...