Ошибка конфигурации маршрутизации IIS с ASP.NET MVC? - PullRequest
0 голосов
/ 04 декабря 2009

Я не уверен, что мой заголовок был достаточно точным. Я пытаюсь сделать SEO URL для моего сайта, который разработан в ASP.NET MVC. Я настроил свой маршрут так, чтобы он включал:

routes.MapRoute(
                "Default",                                                          // Route name
                "{controller}/{action}/{id}/{seo}",                                 // URL with parameters, SEO will up completely optional and used for strings to provide Search Engine Optimization.
                new { controller = "Home", action = "Index", id = "", seo ="" }     // Parameter defaults
            );

На моей машине для разработки, ссылка вроде:

http://localhost:1048/Home/Post/96/Firefighting+ATV+Concept+Twin+Water+Cannons+Gull

работает нормально, но после публикации на сервере (Windows 2008 R2 IIS) он не работает. Например, ссылка:

http://www.otakuwire.net/Home/Post/96/Firefighting+ATV+Concept+Twin+Water+Cannons+Gull

дает мне 404.

Это проблема маршрутизации или какая-то другая проблема?

1 Ответ

2 голосов
/ 04 декабря 2009

Это проблема IIS, а не маршрутизация. IIS7 строг в том, как он работает с символом плюса + в URL. Простое решение - использовать вместо этого тире -, как и у всех остальных, или выделять жирным шрифтом и использовать пробел (что, личное замечание, выглядит ужасно в адресной строке IE).

На ServerFault они представляют решение на основе конфигурации, позволяющее использовать символы +: https://serverfault.com/questions/76013/iis6-vs-iis7-and-iis7-5-handling-urls-with-plus-sign-in-base-not-querystri

...