2017-10-19 13 views
0

ドメインの下で動作するSpring Bootでアプリケーションを開発しています。ユーザーがparentdomain.com/adminで、ログインした後、その内容を入力して片側から親ドメインのサブフォルダを指す複数のドメインを持つWebアプリケーション

parentdomain.com 

。このコンテンツは処理され、サブフォルダで一般公開されます。

parentdomain.com/user-one-content 
parentdomain.com/user-two-content and so on. 

私は例えば、彼のフォルダに各ユーザーのドメインをポイントする必要があります。

userone.com should be equivalent to parentdomain.com/user-one-content 

ナビゲーションはuserone.comのウェブサイトに残るはずです。

userone.com/first-pageは、parentdomain.com/user-one-content/first-pageを開く必要があります。

現在、アプリケーションはPWS(Pivotal Web Services)にインストールされていますが、ルーティングシステムはこのアプローチの解決法を提供していません。複数のドメインが親のサブフォルダを指しています。

どうすればこの機能をアーカイブできますか?

答えて

0

私はSpring Bootを残しておき、その前にWebサーバーを配置します。 ApacheやNginxをインストールできますか?ドメイン/サブドメインの再ルーティングは、両方のドメインでそのまま使用できます。終わり

+0

推奨Webサーバーは、Tomcatのです。 おそらくApacheまたはNginxをTomcatと組み合わせることができます。しかし、それはPWSのようなサービスよりはるかに複雑な解決策に見えます。 –

+0

次に、HandlerInterceptorを使用し、preHandleで上記のロジックに基づいてドメインとパスを変更することができます。あなたのアプリは、正しいドメインとパスに入っているかのように見えます。 – gspatel

0

私はPWSの発根システム、または他のIaaSクラウドプロバイダとgspatel

から、アドバイスのおかげで、それをアーカイブすることができ、私は、アプリケーション全体に各ドメインを根絶することができます。

HandleInterceptorのpreHandleメソッドを実装して、リクエストが自分のドメインから来ているかどうかをチェックします(この例ではparentdomain.com)。または、サイトのドメインからアクセスしている場合は、アプリが配信されています(この例ではuserone.com)。その場合、私はparentdomain.comや他のユーザーのコンテンツにアクセスせず、ユーザーのホームページ(例ではuser-one-content)にリクエストを転送します。

私preHadle実装のエキス、です:それは限り、彼らがJavaサーブレットを扱うことができるよう、他のものの上で実行することができますが、

public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { 

     ... 

     String URI = request.getRequestURI(); 
     String rootURI = "/" + idweb + "/"; 

     if(URI.equals("/") || !URI.startsWith(rootURI)){ 
      URI = rootURI; 

      RequestDispatcher requestDispatcher = request.getRequestDispatcher(request.getContextPath() + URI); 
      requestDispatcher.forward(request, response); 

     } 

    return true; 
} 
関連する問題