2011-08-26 57 views
5

我想要以下重定向功能Playframework:將條目路由到外部URL

GET /google google.com 

我該如何實現?

+0

我不會建議映射到本地路徑一個外部URL,這是誤導性的,而不是標準的導航體驗。我只需在Google需要的地方添加一個鏈接即可。 –

+0

Pere,google.com只是一個例子。我們有兩個內部域名網站......可以說主站點和一個博客站點(在不同的域名下,由一個單獨的團隊維護)。我只想簡單地將domiain.com/blog重定向到blog.com – roshan

+0

甚至認爲,如果它是應用程序的外部(所以它將有自己的路徑),我不會使用路由。路線是應用程序本身的路徑。 –

回答

8

似乎沒有可能直接從路線文件at this moment那樣做。

你可以在控制器實現這一點:

public class Application extends Controller { 

public static void google() { 
    redirect("http://www.google.com"); 
} 
} 
+0

謝謝。是的,這是迄今爲止最好的解決方案(除了面向apache/web服務器)。不知道如果路線可以處理這種情況可以節省多少資源 – roshan

+3

從SEO的角度來看,當重定向域外時,我強烈建議使用'redirect(「http://www.google.com」,true) ;',這將表明搜索機器人的內容已永久移動到新的位置,而不是臨時(HTTP代碼301而不是302)。非常詳細的討論302重定向[這裏](http://www.mattcutts.com/blog/seo-advice-discussing-302-redirects/)。 – pents90

+5

直接從路由重定向也可用:'GET/main controllers.Default.redirect(to =「http://google.com/」)' – FoREacH

7
GET /google controllers.Default.redirect(to = "http://google.com/") 

(重新發布的foreach的評論,因爲它的價值是在這裏作爲一個答案)