mod_jkを使用してApacheサーバー経由でTomcatのサブドメインをリダイレクトする

StackOverflow https://stackoverflow.com/questions/1212603

質問

Tomcat(6.0.20)とApache Serverセットアップ(2.2)があり、すべてのサブドメインをドメイン上の特定のコンテキストにリダイレクトしようとしています。

e.g.、s.example.comからwww.example.comへのリダイレクト

Apacheは mod_jk を介してリクエストを転送しています( mod_proxy を試しましたが、絶対URLではないのでcssとjsは読み込まれませんでした)。

現在の設定:

httpd.conf:

Include C:/apache-tomcat-6.0.20/conf/auto/mod_jk.conf
RewriteEngine On
<VirtualHost *:80>
    ServerName www.example.co.za
    ServerAlias www.example.co.za example.co.za *.example.co.za
    RewriteEngine on
    RewriteLog "C:/Program Files/Apache Software Foundation/Apache2.2/logs/rewrite.log" 
    RewriteLogLevel 3 
    RewriteCond %{HTTP_HOST} example\.co\.za.*$ [NC]
    RewriteRule ^(.*)$ http://www.example.co.za [L] 
    JkMount /* worker1
</VirtualHost>
JkMount /* worker1

server.xml:                                

    <Host name="www.example.co.za" appBase="hosts/example"
         unpackWARs="true" autoDeploy="true"
          xmlValidation="false" xmlNamespaceAware="false">
          <Valve className="org.apache.catalina.valves.AccessLogValve"
                directory="C:/apache-tomcat-6.0.20/logs" prefix="localhost_access_log."
                suffix=".txt" pattern="common" resolveHosts="false"/>

             <Context path="" docBase="Property"/>
              <Alias>*.example.co.za</Alias>
        </Host>

ww.example.comのリダイレクトは、ノンストップリダイレクトループに入ります。

これは、ユーザーがTomcatマネージャーやサーバー上の他のアプリ(つまり、hudson)にアクセスできるため、セキュリティの観点から非常に重要です。

役に立ちましたか?

解決

このルールを試してください:

RewriteCond %{HTTP_HOST} !^www\.example\.co\.za$
RewriteRule ^ http://www.example.co.za [L]

要求されたURIを保持する場合:

RewriteCond %{HTTP_HOST} !^www\.example\.co\.za$
RewriteRule ^ http://www.example.co.za%{REQUEST_URI} [L]

さらに、301リダイレクトを使用することをお勧めします。そのため、 [L] [L、R = 301] に置き換えて、 R フラグに値301を追加します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top