Перенаправить поддомен на tomcat через сервер apache с помощью mod_jk

У меня есть установка Tomcat (6.0.20) и Apache Server (2.2), и я пытаюсь перенаправить все поддомены в определенный контекст в моем домене.

например, s.example.com перенаправляет на www.example.com

Apache перенаправляет запросы через mod_jk (я пробовал mod_proxy, но css и js не загружались, так как это не абсолютные URL-адреса).

Моя текущая установка:

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

сервер.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).


person RaelG    schedule 31.07.2009    source источник


Ответы (1)


Попробуйте это правило:

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. Поэтому добавьте флаг R со значением 301, заменив [L] на [L,R=301].

person Gumbo    schedule 31.07.2009