mod_jk를 사용하여 Apache Server를 통해 Tomcat에서 하위 도메인을 리디렉션하십시오

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

문제

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

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 Manager 및 기타 앱 (즉, 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 리디렉션을 사용하는 것이 좋습니다. 그래서 추가하십시오 R 교체하여 값 301의 플래그 [L] ~와 함께 [L,R=301].

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top