0

私はgrails 2.2.3アプリケーションに取り組んでいます。このアプリケーションには、バックエンド、マーケティング サイト、およびいくつかのユーザー ページがあります。

各ユーザーページは、username.domain.tld で、マーケティング サイトは domain.tld と www.domain.tld で、バックエンドは domain.tld/backend または backend.domain.tld で利用できる必要があります。

私はすでにこの各部分を実装していますが、私の問題は、「/」の URLMapping が 1 つしかないことです。マーケティング サイトを呼び出すと、応答としてマーケティング ビューが表示されます。username.domain.tld を呼び出すと、マーケティング サイトも応答として取得しますが、/user/page を応答として取得したいと考えています。username.domain.tld/user/page を使用すると、指定されたユーザーに対して適切な応答が得られます (ドメイン名の http ヘッダーをチェックし、サブドメイン名を params.username に設定するフィルターがあります)。

ユーザーページサブドメインの「/」の下にあるユーザーページを機能させるにはどうすればよいですか? アプリを別のアプリ (プラグイン アーキテクチャ) に分割する必要がありますか? 私はそのようなことをすべきですか?http://techsravi.blogspot.de/2011/05/managing-multiple-domain-and-sub-domain.htmlまたは、Apache2 で URL 書き換えを行う必要がありますか?

私の問題に対する最善かつ最もクリーンな解決策は何ですか?

4

3 に答える 3

1

1 つの解決策は、ProxyPass および ProxyPassReverse で Apache 構成を使用して、Tomcat 内で一部の URL を別の URL に「リダイレクト」し、それを異なる VirtualHosts と混合することです。

<VirtualHost *:80>
    ServerName username.domain.tld
    ProxyPass / http://mycomputer:8080/user
    ProxyPassReverse / http://mycomputer:8080/user
</VirtualHost>
<VirtualHost *:80>
    ServerName www.domain.tld
    ProxyPass / http://mycomputer:8080/
    ProxyPassReverse / http://mycomputer:8080/
</VirtualHost>
<VirtualHost *:80>
    ServerName backend.domain.tld
    ProxyPass / http://mycomputer:8080/backend
    ProxyPassReverse / http://mycomputer:8080/backend
</VirtualHost>

これを正確にテストしたことはありませんが、他の同様のケースでは機能し、ここで多く使用しています...

于 2013-09-23T06:54:29.797 に答える
0

あなたが抱えていた問題を解決するかもしれないこの答えGrails and Subdomainsを見つけました。

各ユーザー名に必要なサブドメインのソリューションがあります。このために、フィルターを使用しています。

別の投稿http://fbflex.wordpress.com/2011/08/23/custom-theming-grails-applications/にも同様のソリューションがあり、さまざまなアプローチを使用して問題を解決しています。その1つがフィルターを使うことです。

于 2014-03-16T07:49:52.843 に答える
0

1 つの解決策は、Java フィルターを使用してリクエストのラッパーを使用することです。

ワッパー

https://gist.github.com/pablomoretti/2267314d3d6ffe000430

フィルター

https://gist.github.com/pablomoretti/24238ef030b8906c9e88

于 2013-09-23T14:23:25.787 に答える