Syntaxe RewriteCond et RewriteRule

  • Auteur de la discussion Auteur de la discussion stfn
  • Date de début Date de début
S
stfn
Guest
Bonjour,

Voila j'ai 1 site www.a.com qui est accessible et référencé sur google pas www.a.com,www.b.com et b.com

J'ai bien vu qu'on pouvait utiliser RewriteCond mais je suis pas sur mon htaccess

Le voici

Options +FollowSymlinks
RewriteEngine on

RewriteRule ^zoomflash-(.+)-(.+)-(.+).html$ index.php?page=pages/207.php&laref=$2&pere=$3&titrep=$1
RewriteRule ^flash-(.+)-(.+)-(.+).html$ index.php?page=pages/206.php&deb=$3&pere=$2&titrep=$1
RewriteRule ^logos-(.+)-(.+).html$ index.php?page=pages/202.php&deb=$1&logo=$2
RewriteRule ^(.+)-(.+)-kgd.html$ index.php?page=pages/$2.php
RewriteRule ^(.+)-(.+)-(.+)-(.+).html$ index.php?page=pages/127.php&deb=$2&laref=$3&pere=$4&titrep=$1
RewriteRule ^(.+)-(.+)-(.+).html$ index.php?page=pages/131.php&pere=$2&titrep=$1&deb=$3 [L]

Le
RewriteCond %{HTTP_HOST} !^www.b.com$
RewriteRule ^(.*) http://www.a.com/$1 [QSA,L,R=301]

je le met ou ? je dois retirer le L dans [QSA,L,R=301]

et ajouter aussi
RewriteCond %{HTTP_HOST} !^b.com$
RewriteRule ^(.*) http://www.a.com/$1 [QSA,L,R=301]

Pour conclure est-ce ca marcherai comme ça :

Options +FollowSymlinks
RewriteEngine on

RewriteCond %{HTTP_HOST} !^www.b.com$
RewriteRule ^(.*) http://www.a.com/$1 [QSA,R=301]
RewriteCond %{HTTP_HOST} !^b.com$
RewriteRule ^(.*) http://www.a.com/$1 [QSA,R=301]

RewriteRule ^zoomflash-(.+)-(.+)-(.+).html$ index.php?page=pages/207.php&laref=$2&pere=$3&titrep=$1
RewriteRule ^flash-(.+)-(.+)-(.+).html$ index.php?page=pages/206.php&deb=$3&pere=$2&titrep=$1
RewriteRule ^logos-(.+)-(.+).html$ index.php?page=pages/202.php&deb=$1&logo=$2
RewriteRule ^(.+)-(.+)-kgd.html$ index.php?page=pages/$2.php
RewriteRule ^(.+)-(.+)-(.+)-(.+).html$ index.php?page=pages/127.php&deb=$2&laref=$3&pere=$4&titrep=$1
RewriteRule ^(.+)-(.+)-(.+).html$ index.php?page=pages/131.php&pere=$2&titrep=$1&deb=$3 [L]

On peut sans doute faire plus simple mettre un seul RewriteCond ? Je préfère demander avant car tester en direct vu mon bas niveau en expression régulières j'ai peur de faire des bugs :wink: et la limite aussi faire que http://a.com aille sur www.a.com ?


Merci
 
WRInaute occasionnel
Tiens, personne ne t'as encore répondu...
stfn a dit:
Pour conclure est-ce ca marcherai comme ça :
Je pense que ce que tu souhaites faire c'est plutôt :
Code:
RewriteCond %{HTTP_HOST} !^www.a.com$ 
RewriteRule ^(.*) http://www.a.com/$1 [QSA,L,R=301]
Cela veut dire si je ne suis pas sur -www.a.com alors j'y vais. Comme ça en 2 lignes tu fais tous les cas dont tu parles... Par contre conserve le Flag L pour directement être redirigé.

Mirgolth
 
WRInaute accro
une question un peu dans le meme genre

:arrow: je veux autoriser sur mon site que :
1 -www.monsite.com
2 -aaa.monsite.com

les autres sous domaines devront etre redirigé sur www.monsite.com

j'ai essayé
Code:
RewriteCond %{HTTP_HOST} !^www.monsite.com$ [OR]
RewriteCond %{HTTP_HOST} !^aaa.monsite.com$ 
RewriteRule ^(.*)   http://www.monsite.com/$1  [QSA,L,R=301]

ca a l'air de me déclencher une boucle infinie...

une idée ?
 
WRInaute discret
Re:

mahefarivony a dit:
Code:
RewriteCond %{HTTP_HOST} !^www.monsite.com$ [OR]
RewriteCond %{HTTP_HOST} !^aaa.monsite.com$ 
RewriteRule ^(.*)   http://www.monsite.com/$1  [QSA,L,R=301]

Je suis tombé sur ce vieux post en voulant faire la meme chose...
et j'avais fait la meme erreur...
j'reponds donc, ca peux toujours etre utile au gars qui cherchera a faire pareil dans 6 ans ;D

la bonne syntaxe sera :
Code:
RewriteCond %{HTTP_HOST} !^www.monsite.com$
RewriteCond %{HTTP_HOST} !^aaa.monsite.com$ 
RewriteRule ^(.*)   http://www.monsite.com/$1  [QSA,L,R=301]

ce n'est pas un OU mais un ET (si ce n'est pas A et pas B alors fait dechaine les enfers...)

ou si c'est seulement pour eviter la consultation du site sans www :
Code:
RewriteCond %{HTTP_HOST} ^monsite.com$
RewriteRule ^(.*)   http://www.monsite.com/$1  [QSA,L,R=301]
 
Discussions similaires
Haut