Asp.Net MVC маршрутизации: лучший способ иметь один элемент в URL?

голоса
1

Я буду брать пример сайта SO. Для того, чтобы перейти к списку вопросов, URL - адрес является www.stackoverflow.com/questions. За сценой, это идет на контроллер (чье имя неизвестно) и к одному из своих действий. Допустим , что это контроллер = дом и действие = вопросы .

Как запретить пользователю набирать www.stackoverflow.com/ дома / вопросы , которые привели бы к той же странице и будет ниже ранг страницы, насколько SEO обеспокоен. Это займет ли редирект , чтобы решить это? Есть ли принимать какие - то особые правила маршрутизации , чтобы справиться с такой ситуацией? Что-то другое?

благодаря

Задан 10/12/2008 в 03:21
источник пользователем
На других языках...                            


3 ответов

голоса
1

Вы хотите использовать следующий маршрут. Это действительно легко вы просто создать новый маршрут, который устраняет необходимость в контроллер, чтобы быть в маршруте. Вы создаете строку шаблона, содержит только действие и вы по умолчанию контроллера к контроллеру вы хотите использовать, например, как «Home».

routes.MapRoute(
    "MyRoute",
    "{action}",
    new { controller = "Home", action = (string)null },
    new { action = "[a-zA-z_]+" }
);

Надеюсь это поможет.

Ответил 10/12/2008 в 15:38
источник пользователем

голоса
1

Во время презентации Фил Хаака из PDC , Джефф показывает некоторые из исходного кода для переполнения стека. Среди вещей , которые он показывает код для некоторых регистраций маршрутов. Он получил их в контроллерах, и это мне не ясно , что он использует маршрут по умолчанию на всех. С маршрутом по умолчанию, вам не нужно будет беспокоиться о / дома / вопросах, например.

Что касается / вопросы / индекс, да, постоянный редирект путь. Вы не получите никакой поисковой штраф за постоянной переадресации.

Другой способ устранения / дома / вопросы будут использовать маршрут ограничение.

Ответил 10/12/2008 в 15:32
источник пользователем

голоса
1

Я предположил , что контроллер был questionsи действие было index, то есть действие по умолчанию , как это определено обработчик маршрута. Таким образом , не существует альтернативный путь к странице.

Ответил 10/12/2008 в 03:24
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more