サーバーのURLからコンテキスト名を削除しようとしています。
現在のURL-http://www.domainname.com/MyApp/
私がする必要があるのは-www.domainname.com/
で利用可能にすることです
そのため、1つのメインアプリのみをホストし、ブラウザでwww.domainname.com/
を開くときに表示する必要があります。
私はすでに以下のようなものをいくつか試しました-
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/(Context/.*)$
RewriteRule ^/(.*)$ /Context/$1 [P,L]
OR
redirect permanent /MyApp/ abcd://domainname.com
OR
JKMountの使用-
JkMount /MyApp/* ajp13
JkMount /MyApp* ajp13
OR
TomcatのROOTにwarファイルをデプロイし、webおよびserver.xmlに関連するシャンパンを作成します。これらはすべて機能せず、内部エラーが発生し続けます。基本的にTomcat URLを短縮して短縮する方法が必要です。
http://www.domainname.com/MyApp/
がそのまま機能すると仮定して...最終的なRewriteRuleを使用するだけではいけませんか? RewriteCondと 'P'フラグをドロップするだけです。
または、mod_rewriteを使用してプロキシを「P」フラグで実行する場合、RewriteRuleで完全なURLを使用する必要はありませんか? http://tomcatserver:tomcatport/Context/$1
のようなもの
Mod_jkの使用を停止し、mod_proxyの使用を開始する必要があります。私はポート8080でTomcatを実行しています。私のサイトを動かすWebアプリにはhttp://localhost:8080/mysite
のような内部URLがあります。http://mysite.example.com/
で利用できるようにmodプロキシを使用します。外の世界から。 mod_proxyはmod_jkよりもはるかに柔軟です。 Tomcatは、httpポート8080とデフォルトでmod_jkが使用するポートの両方でアプリケーションを利用できるようにするため、Tomcatの設定を変更する必要さえありません。
そのサイトの私のApache構成はこのようになります
<VirtualHost *:*>
Servername mysite.example.com
ProxyRequests Off
ProxyPass / http://localhost:8080/mysite/
ProxyPassReverseCookiePath /mysite /
ProxyPassReverseCookieDomain localhost mysite.example.com
</VirtualHost>
Cookieスタッフは、セッションcookieがmod_proxyによって正しく変換されるようにします。必要に応じて、mod_proxyでリンクを書き換えることもできます。私の場合、私のWebアプリがそれを処理します。