2012-07-19 71 views
0

我正在使用ASP.NET MVC路由來根據某些詞引導流量,例如mydomain.com/support,它指向支持頁面(位於主控制器下)或mydomain.com/controller/action/id(默認情況下)。'重載'MVC路由?

但是,我還希望流量能夠在通用頂級域名(gTLD)之後使用任何單個字詞 - 我尚未指定 - 打開我的主頁。

例如:mydomain.com/anything仍然會打我的主頁,而不會產生404響應。凡什麼是除了我已經指定的任何詞(所以在這個例子中的「支持」)。

這甚至可能嗎?

回答

0

你只是做了這樣的事情嗎?

routes.MapRoute(
    "MyRoute", 
    "{word}.aspx", 
    new { 
     controller = "Home", 
     action = "Index" 
    } // Parameter defaults 
); 

和更新的動作(指數在這種情況下有一個參數)。

0

我不知道你爲什麼要這樣做,因爲通過這個,你可以最終索引很多搜索引擎的請求。

routes.MapRoute(
    "MyRoute", 
    "{anything}", 
    new { controller = "Home", action = "Index" } 
); 

該路由應該在最後一條默認路由之後。

如果你想即使這種請求http://mydomain.com/anything/otherthing/another仍然由家庭控制器處理,那麼你一定要試試的,

routes.MapRoute(
    "CatchAllRoute", 
    "{*anything}", 
    new { controller = "Home", action = "Index" } 
); 
+0

這會導致搜索引擎不好的時候重新:搜索結果? – Greg 2012-07-19 14:14:51

+1

你打算對所有這些請求給予同樣的迴應嗎?如果是這種情況,那麼它可能會降低頁面等級。如果您針對兩個不同的網址向瀏覽器提供相同的響應,將會降低網頁排名。 – VJAI 2012-07-19 14:22:37