Simplifier en factorisant les conditions de mon htaccess.

WRInaute discret
Bonjour,

j'ai 2 NDD sur un site, et mes regles s'empilent... c'est lourd, moche et ca plante de plus en plus... comment puis factoriser les conditions ?

mon example :

Code:
RewriteCond %{HTTP_HOST}   !^www\.SITE_1\.com [NC]
RewriteRule ^/(.*)         http://www.SITE_1.com/$1 [L,R]

RewriteCond %{HTTP_HOST}   !^www\.SITE_2\.com [NC]
RewriteRule ^/(.*)         http://www.SITE_2.com/$1 [L,R]

RewriteCond %{HTTP_HOST}   !^www\.SITE_1\.com [NC]
RewriteRule ^/fr/(.*)         http://www.SITE_1.com/$1?lang=fr [L,R]

RewriteCond %{HTTP_HOST}   !^www\.SITE_2\.com [NC]
RewriteRule ^/fr/(.*)         http://www.SITE_2.com/$1?lang=fr [L,R]
etc....

comment puis-je factoriser, genre :
Code:
cond 1 { 
toutes mes regles...
}
cond 2 {
toutes mes regles 
}
else {
regle commune
}

merci de votre reponse.
 
WRInaute impliqué
Tu peux factoriser en PHP...

Sinon, tu peux essayer avec des variables d'environnement. Les deux premières regles testent les conditions, le reste réécrit.

Code:
RewriteCond %{HTTP_HOST}   !^www\.SITE_1\.com [NC]
RewriteRule (.*)         $1 [E=COND]

RewriteCond %{HTTP_HOST}   !^www\.SITE_2\.com [NC] 
RewriteRule (.*)         $1 [E=COND]

RewriteCond %{ENV:COND}   cond1
RewriteRule ^/(.*)         http://www.SITE_1.com/$1 [L,R]

RewriteCond %{ENV:COND}  cond2
RewriteRule ^/(.*)         http://www.SITE_2.com/$1 [L,R]

RewriteCond %{ENV:COND}   cond1
RewriteRule ^/fr/(.*)         http://www.SITE_1.com/$1?lang=fr [L,R]

RewriteCond %{ENV:COND}  cond2
RewriteRule ^/fr/(.*)         http://www.SITE_2.com/$1?lang=fr [L,R]

Pas testé cela dit.
 
Discussions similaires
Haut