2009-07-31 3 views
0

Tomcat (6.0.20) 및 Apache Server 설치 (2.2)가 있고 모든 도메인을 내 도메인의 특정 컨텍스트로 리디렉션하려고합니다.mod_jk를 사용하여 Apache 서버를 통해 Tomcat의 하위 도메인을 리디렉션합니다.

예를 들어, s.example.com이 mod_jk를 통해 요청을 fowarding있다 www.example.com

아파치로 리디렉션 (나는 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 

의 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 관리자 및 기타 앱 (즉, 허드슨)에 액세스 할 수 있으므로 이는 보안상의 관점에서 매우 중요합니다.

답변

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 플래그를 [L][L,R=301]으로 바꾸어 값 301과 함께 추가하십시오.

+0

매우 간단합니다. 감사 – RaelG