2012-01-12 83 views
1

我們將Play 1.2.4用於項目。對於瀏覽到「https://www.mydomain.com」的用戶,我們希望將其重定向到「https://mydomain.com」。在Play框架中將https://www.mydomain.com重定向到https://mydomain.com

一旦我們的web應用程序部署完畢,就不會有像Apache這樣的前端Web服務器。它將全部在Play上運行。 (我們已經有HTTPS的東西了,在Play中很容易)

當在開發中測試時,我們可以添加foo.localdomain和bar.localdomain到我們的/ etc/hosts文件來模擬這個,然後做真正的生產。

關於如何將www.mydomain.com重定向到純粹的Play環境中的簡單mydomain.com的任何想法?

回答

1

我們整理了一下。該解決方案在dev中運行,我們預計它在prod中可以正常工作。

我們添加了@Before方法給我們的控制器類,它的工作原理是這樣的:

@Before 
public static void redirectIfNeeded() { 
    String baseUrl = play.Play.configuration.getProperty("application.baseUrl"); 
    if (baseUrl.indexOf(request.domain) == -1) { 
     redirect(baseUrl); 
    } 
} 

總之,每一個控制器方法被調用時,我們要確保調用域是mydomain.com(如指定在application.baseUrl屬性中的application.conf中)而不是www.mydomain.com。如果它不是mydomain.com,則重定向到mydomain.com。

+1

如果請求包含參數該怎麼辦?您將始終被重定向到root – user12384512 2014-04-20 09:50:11