Question

J'ai une configuration Tomcat (6.0.20) et Apache Server (2.2) et j'essaie de rediriger tous les sous-domaines vers un contexte spécifique, sur mon domaine.

Par exemple, s.example.com redirige vers www.example.com

Apache envoie les requêtes via mod_jk (j'ai essayé mod_proxy , mais les fichiers css et js ne se sont pas chargés car ils ne sont pas des URL absolues).

Ma configuration actuelle:

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 redirection pour ww.example.com passe dans une boucle de redirection non-stop.

Ceci est extrêmement important du point de vue de la sécurité, car l'utilisateur peut accéder au gestionnaire de tomcat et aux autres applications du serveur (notamment hudson).

Était-ce utile?

La solution

Essayez cette règle:

RewriteCond %{HTTP_HOST} !^www\.example\.co\.za$
RewriteRule ^ http://www.example.co.za [L]

Et si vous souhaitez conserver l'URI demandé:

RewriteCond %{HTTP_HOST} !^www\.example\.co\.za$
RewriteRule ^ http://www.example.co.za%{REQUEST_URI} [L]

De plus, je vous recommande d'utiliser une redirection 301. Ajoutez donc le drapeau R avec la valeur 301 en remplaçant [L] par [L, R = 301] .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top