Umleiten von Sub-Domain auf tomcat durch Apache-Server mit mod_jk
-
06-07-2019 - |
Frage
Ich habe eine Tomcat (6.0.20) und Apache Server-Setup (2.2) und ich versuche, all Sub-Domains zu einem bestimmten Kontext zu umleiten, auf meiner Domäne.
z. B. Umleitung s.example.com zu www.example.com
Apache fowarding Anfragen über mod_jk
(Ich habe versucht mod_proxy
, aber die CSS und JS haben als nicht absolute Urls nicht geladen werden).
Meine aktuelle Setup:
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>
Die Umleitung für ww.example.com wird in eine Non-Stop-Umleitung Schleife.
Dies ist äußerst wichtig, von einer sicherheitstechnischen Sicht als Benutzer könnte die tomcat-Manager und andere Anwendungen auf dem Server (nämlich hudson) zugreifen zu können.
Lösung
Versuchen Sie, diese Regel:
RewriteCond %{HTTP_HOST} !^www\.example\.co\.za$
RewriteRule ^ http://www.example.co.za [L]
Und wenn Sie möchten, die angeforderte URI halten:
RewriteCond %{HTTP_HOST} !^www\.example\.co\.za$
RewriteRule ^ http://www.example.co.za%{REQUEST_URI} [L]
Außerdem empfehle ich Ihnen eine 301-Umleitung zu verwenden. So fügen Sie den R
Flag mit dem Wert 301 durch [L]
mit [L,R=301]
ersetzt werden.