2009-12-03 114 views
0

我不確定我的標題是否足夠準確。我正在嘗試爲ASP.NET MVC中開發的我的網站製作SEO網址。我配置我的路線包括:ASP.NET MVC的IIS路由配置錯誤?

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

什麼版本的.NET是配置爲使用服務器? – Oded 2009-12-03 21:43:48

回答

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

+0

是的,您實際收到404實際上是,這是IIS請求過濾功能返回的。它會阻止幾種網址格式,包括您展示的網址。 – 2009-12-03 22:20:09