Redireccionar subdominio en tomcat a través del servidor apache con mod_jk
-
06-07-2019 - |
Pregunta
Tengo una configuración de Tomcat (6.0.20) y Apache Server (2.2) y estoy tratando de redirigir todos los subdominios a un contexto específico, en mi dominio.
por ejemplo, s.example.com redirige a www.example.com
Apache está solicitando solicitudes a través de mod_jk
(probé con mod_proxy
, pero css y js no se cargaron porque no son URL absolutas).
Mi configuración actual:
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>
La redirección para ww.example.com está entrando en un bucle de redirección sin parar.
Esto es extremadamente importante desde el punto de vista de la seguridad, ya que el usuario puede acceder al administrador de tomcat y otras aplicaciones en el servidor (es decir, Hudson).
Solución
Pruebe esta regla:
RewriteCond %{HTTP_HOST} !^www\.example\.co\.za$
RewriteRule ^ http://www.example.co.za [L]
Y si desea conservar el URI solicitado:
RewriteCond %{HTTP_HOST} !^www\.example\.co\.za$
RewriteRule ^ http://www.example.co.za%{REQUEST_URI} [L]
Además, le recomiendo que use una redirección 301. Entonces agregue el indicador R
con el valor 301 reemplazando [L]
con [L, R = 301]
.