JavaのApp Engineを持つ複数のサイト
-
21-08-2019 - |
質問
私はすべて1つのアプリケーションとして実行サイトのシリーズを作成しようとしていますが、(それらをローカライズするために)異なるデザインを持っています。
私の考えは、一つのサイトに別のドメイン名をマップすることです。例えば:www.mysite1.comはwww.mysite.appspot.com/mysite2
にマップをwww.mysite.appspot.com/mysite1にマッピングし、www.mysite2.com私は、サーブレットにweb.xmlファイルからサイトの名前を渡すためにURLパターンか何かがなければならないことを推測していますか?私はそのようなwww.mysite.appspot.com/mysite1/forumpost/3/としてURLがwww.mysite.appspot.com/mysite2/forumpost/3/と同じサーブレットによって処理することができるようにしたいと思います。 理想的には私は、サーブレットへのパラメータとして、サイト名を渡したいと思います。
確かに前にこれをやった人、またはこれを行うにはいくつかの標準的な方法は何ですか?私はそれからサイト名を取るために、URLを解析に関するファジーアイデアを持っているが、私は、サーブレットなどにかなり新しいですし、誰かがこのような状況にいくつかの光を当てることができるかもしれないと思っています。
ありがとうございます。
解決
あなたはappspot.comのアプリ(例えば、foo.mysite.appspot.com)の独自のサブドメインをマッピングすることはできませんが、あなたは、このようなwww.mysite1.comとwww.mysite2として、直接自分のアプリに任意のドメインをマッピングすることができます.COM - ちょうどGoogle Appsアカウントへのエイリアスとしてそれらすべてを追加し、あなたのApp Engineアプリケーションにマップします。あなたはそれが行われましたら、あなただけの適切なハンドラ(あるいはあなたが返す内容を変える)へのルート要求にアプリ内のホストヘッダーの内容を確認する必要があります。
他のヒント
HTTPリクエストヘッダ「javax.servlet.Filter
」に基づいて、言語特定のページへのAccept-Language
および転送を使用してみてください(私はそれが1だと思います)。あなたはjavax.servlet.HttpServletRequest.getHeader(String)
を呼び出して、その時に取得することができます。
この方法は、あなたのサイトは、単一のURLを持ち、言語特定のページへの分離は、内部的に処理されます。