2012-01-12 9 views
1

プロジェクトでPlay 1.2.4を使用しています。 「https://www.mydomain.com」を参照しているユーザーの場合は、「https://mydomain.com」にリダイレクトします。Playフレームワークでhttps://www.mydomain.comからhttps://mydomain.comにリダイレクト

webappがデプロイされると、ApacheのようなフロントエンドWebサーバーはなくなります。それはすべてPlayで実行されます。

開発中のテストでは、foo.localdomainとbar.localdomainを/ etc/hostsファイルに追加して、これをシミュレートしてから実行することができます生産現実。

純粋なPlay環境でwww.mydomain.comをmydomain.comに簡単にリダイレクトする方法に関するアイデアはありますか?

答えて

1

私たちはそれを選別しました。このソリューションはデベロッパーで動作し、我々はそれがうまく機能することを期待しています。私たちはこのように動作します私たちのコントローラクラスに@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

リクエストにパラメータが含まれている場合はどうなりますか?あなたは常にルートにリダイレクトされます – user12384512

関連する問題