supertino7 Posté 4 Juin 2010 Partager Posté 4 Juin 2010 Bonjour, Je cherche à rediriger toute adresse de subdomain.domain.com vers www.domaine.com, sauf si l'url est du type : subdomain.domain.com/any-page.htm J'ai pensé à utiliser en tête de liste un RewriteRule matchant les urls se terminant par .htm , en utilisant le flag L pour stopper le matching. RewriteEngine OnRewriteCond %{HTTP_HOST} ^subdomain.domain.com [NC]RewriteRule ^([^.]*).htm$ $1.htm [L]RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]# rediriger domain.com vers www.domain.comRewriteCond %{HTTP_HOST} ^domain.com$ [NC]RewriteRule ^(.*) http://www.domain.com/$1 [QSA,R=301,L]# règles du Zend FrameworkRewriteCond %{REQUEST_FILENAME} -s [OR]RewriteCond %{REQUEST_FILENAME} -l [OR]RewriteCond %{REQUEST_FILENAME} -dRewriteRule ^.*$ - [NC,L]RewriteRule ^.*$ index.php [NC,L] Mais ça ne fonctionne pas, FF me donne le message : "Firefox a détecté que le serveur redirige la demande pour cette adresse d'une manière qui n'aboutira pas." Merci pour votre aide Lien vers le commentaire Partager sur d’autres sites More sharing options...
jcaron Posté 4 Juin 2010 Partager Posté 4 Juin 2010 Il vaut mieux utiliser une RewriteCond pour ça. Si les .htm en question sont de "vrais" fichiers, une condition sur %{REQUEST_FILENAME} et -f par exemple devrait faire l'affaire. Sinon tu peux faire quelque chose comme RewriteCond %{REQUEST_URI} !\.htm$ par exemple. Jacques. Lien vers le commentaire Partager sur d’autres sites More sharing options...
supertino7 Posté 4 Juin 2010 Auteur Partager Posté 4 Juin 2010 Il vaut mieux utiliser une RewriteCond pour ça. Si les .htm en question sont de "vrais" fichiers, une condition sur %{REQUEST_FILENAME} et -f par exemple devrait faire l'affaire. Sinon tu peux faire quelque chose comme RewriteCond %{REQUEST_URI} !\.htm$ par exemple. Jacques. Merci pour ton aide. Effectivement, ce ne sont pas de vrais fichiers, ce qui est avant ".htm" est un paramètre à passer un controleur. Voici ce que j'ai essayé : RewriteCond %{HTTP_HOST} ^sousdomaine\.domaine\.com [NC] #concerne le sous-domaine RewriteCond %{REQUEST_URI} !^/(.*)\.htm$ #tout ce qui ne se termine pas par .htmRewriteRule ^/(.*) http://www.domaine.com/$1 [L,R] # on dirige le tout vers www.domaine.com/etc...# rediriger domaine.com vers www.domaine.comRewriteCond %{HTTP_HOST} ^domaine\.com$ [NC]RewriteRule ^(.*) http://www.domaine.com/$1 [QSA,R=301,L]# Redirection vers index.php sauf fichiersRewriteCond %{REQUEST_FILENAME} -s [OR]RewriteCond %{REQUEST_FILENAME} -l [OR]RewriteCond %{REQUEST_FILENAME} -dRewriteRule ^.*$ - [NC,L]RewriteRule ^.*$ index.php [NC,L] Pour moi ça a l'air bon, mais la redirection ne s'effectue pas. -http://sousdomaine.domaine.com/une-requete.htm => ne redirige pas, parfait ça fonctionne. -http://sousdomaine.domaine.com/foo/bar => ne redirige pas vers -http://www.domaine.com/foo/bar Lien vers le commentaire Partager sur d’autres sites More sharing options...
supertino7 Posté 4 Juin 2010 Auteur Partager Posté 4 Juin 2010 Bon en fait, il semble que les conditions et la règle ne soient même pas matchées. J'ai essayé ça : RewriteCond %{HTTP_HOST} ^sousdomaine\.domaine\.com [NC]RewriteRule ^/(.*) http://www.google.com/?q=$1 [L,R] pour le fun. Et aucune adresse n'est redirigée vers google. On dirait que la condition HTTP_HOST ne passe vraiment pas Lien vers le commentaire Partager sur d’autres sites More sharing options...
Remi Posté 4 Juin 2010 Partager Posté 4 Juin 2010 Et sans le '/' de début de la RewriteRule, tu as essayé? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant