Un .htaccess pour plusieurs sites : imbriquer plusieurs RewriteRule dans un seul RewriteCo

WRInaute discret
Bonjour à tous,

Je dispose d'un fichier .htaccess unique pour plusieurs sites. Je sais que ce n'est pas tip top, mais je n'ai pas le choix.

Je souhaite donc économiser un maximum de lignes de redirections, d'où ma question :

"Est-ce possible d'imbriquer plusieurs RewriteRule dans un seul RewriteCond %{HTTP:Host} ?"

Ex :
Code:
//Redirections Site A
RewriteCond %{HTTP:Host} ^www\.nom-du-site\.fr$ 
RewriteRule ^/ancienneUrl.aspx /nouvelleUrl.aspx [NC,R=301]
RewriteRule ^/ancienneUrl.aspx /nouvelleUrl.aspx [NC,R=301] 
RewriteRule ^/ancienneUrl.aspx /nouvelleUrl.aspx [NC,R=301] 

//Redirections Site B
RewriteCond %{HTTP:Host} ^www\.nom-du-site2\.fr$ 
RewriteRule ^/ancienneUrl.aspx /nouvelleUrl.aspx [NC,R=301]
RewriteRule ^/ancienneUrl.aspx /nouvelleUrl.aspx [NC,R=301] 
RewriteRule ^/ancienneUrl.aspx /nouvelleUrl.aspx [NC,R=301]

Car actuellement, le RewriteCond %{HTTP:Host} ne s'applique qu'au RewriteRule qui le succède, mais pas aux suivants....

D'avance merci pour votre aide !
 
WRInaute passionné
tel quel non. La technique que tu peux utiliser c'est d'utiliser le flag SKIP. ca doit ressembler à :
Code:
RewriteCond %{HTTP:Host} !^www\.nom-du-site\.fr$
RewriteRule .* - [NC,S=3]
RewriteRule ^/ancienneUrl.aspx /nouvelleUrl.aspx [NC,R=301]
RewriteRule ^/ancienneUrl.aspx /nouvelleUrl.aspx [NC,R=301]
RewriteRule ^/ancienneUrl.aspx /nouvelleUrl.aspx [NC,R=301]
=>http://httpd.apache.org/docs/current/fr/rewrite/flags.html#flag_s
 
WRInaute discret
Salut !

J'ai testé, et j'obtiens l'effet inverse.

En effet, le site 1 ne redirige plus, et le site 2 redirige vers les urls de tests.... :?:

Code:
# Test du flag SKIP
RewriteCond %{HTTP:Host} ^www\.site1\.com$
RewriteRule .? - [S=3]
RewriteRule /test1.aspx /marche1.aspx [NC,R=301]
RewriteRule /test2.aspx /marche2.aspx [NC,R=301]
RewriteRule /test3.aspx /marche3.aspx [NC,R=301]

RewriteCond %{HTTP:Host} ^www\.site2\.com$
RewriteRule etc......
 
WRInaute passionné
Tu as oublié d'inverser la condition en ajoutant un point d'exclamation (tu "skip" que si le site est différent). Il était bien présent dans l'exemple ;)
 
Discussions similaires
Haut