我不确定我的头衔是否足够准确。我正在尝试为我的网站制作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.
这是路由问题还是其他问题?
答案 0 :(得分:2)
这是一个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