LifeAct
@LifeAct
Создаем и раскручиваем, не ставим на конвейер

Как правильно изменить маршрут?

Всем привет!

Стандартный маршрут в асп следующий:

routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );


Чтобы в действиях Home контроллера на главных страницах (о сайте, контакты) и т д избежать не нужной вложенности и убрать home, я выше этого маршрута пишу:

routes.MapRoute(
               "HomeContact",
               "contact",
               new { controller = "Home", action = "Contact" }
           );


теперь у меня красивый урл site/Contact вместо site/home/Contact

обнаружил проблему в плане SEO - моя страница доступна по обоим маршрутам - site/Contact и site/home/Contact
это дубли. Как сделать более правильно и изящно? Писать в web.config на каждую страницу 301 редирект как то совсем не хочется. Мало то го что в RoutConfig на каждую страницу добавляю маршрут, так еще и теперь редиректы....

если я правильно понимаю тег каноника, то мне на дублях страницах (site/home/Contact) нужно добавить
<link rel="canonical" href="http://site/Contact" />

но матерый знакомый сеошник говорит правильно 301 редирект...

Спасибо.
  • Вопрос задан
  • 158 просмотров
Решения вопроса 1
rel="canonical" это правильно никаких редиректов! Для упрощения работы со всем этим рекомендую использовать mvcsitemapprovider, конкретно для SEO почитать тут.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы