web-dev-qa-db-ja.com

Tomcat URL mod_rewriteまたはmod_jkに関するヘルプが必要です

サーバーの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を短縮して短縮する方法が必要です。

2
Redbull Fan

http://www.domainname.com/MyApp/がそのまま機能すると仮定して...最終的なRewriteRuleを使用するだけではいけませんか? RewriteCondと 'P'フラグをドロップするだけです。

または、mod_rewriteを使用してプロキシを「P」フラグで実行する場合、RewriteRuleで完全なURLを使用する必要はありませんか? http://tomcatserver:tomcatport/Context/$1のようなもの

1
matthew

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アプリがそれを処理します。

0