URL rewr. s'annule dans sous rep. contenant un .htaccess

Nouveau WRInaute
Bonsoir,

J'ai plusieurs fichiers .htaccess. Un à la racine, et d'autres dans des sous répertoires.
Tous sont utilisés pour le même site.

En gros, j'utilise celui qui est à la racine pour que mon domaine sois toujours en .fr et pour rediriger en 301 certains répertoires dont le nom a été modifié.
Ce qui donne ça :
Code:
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.domaine\.fr [NC]
RewriteRule (.*) http://www.domaine.fr/$1 [QSA,R=301,L]
RewriteRule   ^vehicules_occasions(.*) /voiture-occasion$1 [QSA,R=301,L]
RewriteRule   ^machines_agricoles(.*) /machines-agricoles$1 [QSA,R=301,L]
...

Puis dans le repertoire "voiture-occasion" (ou un autre c'est pareil) j'ai un .htaccess qui gère les réécritures de pages propres au répertoire.
Ce qui donne ... ça :
Code:
RewriteEngine on
RewriteRule ^([0-9]+)-(.*).htm$  fiche-vo.php?nvo=$1  [L]
RewriteRule ^marchand-([0-9]+)-(.*).htm$  fiche-vom.php?nvo=$1  [L]
RewriteRule ^vo_pro_index.php$   /voiture-occasion/voiture-occasion-marchand.htm  [QSA,R=301,L]
RewriteRule ^rechercher-voiture-d-occasion.htm$   vop_index.php  [L]
...

Mon problème est que dès que j'ai un fichier .htaccess dans un repertoire, ma redirection de domaine pour conserver le ".fr" ne fonctionne plus, et toutes mes url fonctionnent mais si j'arrive en ".com", j'y reste.
Pour les utilisateurs c'est pas très important, mais je préfèrerai que les moteurs n'indexent que du ".fr".

Voyez-vous une raison à ça ?
Merci d'avance de votre réponse.

Cédric.
 
Nouveau WRInaute
Merci.

J'ai essayé de placer
Code:
RewriteOptions inherit
dans chaque .htaccess (pas en même temps ... :) )
en gros, maintenant j'ai bien mon .fr ... mais j'ai plus la réécriture :cry:
ou à l'envers ... Argh !!

Exemple, je passe de www.gueudet.com/voiture-occasion/auto-peugeot-407-0.htm , ou je veux du fr à www.gueudet.fr/vop_results.php?marqueA= ... delimit=15.

bof ... et je ne maîrise pas trop le pourquoi du comment ...

Code:
# -- /.htaccess
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.domaine\.fr [NC]
RewriteRule (.*) http://www.domaine.fr/$1 [QSA,R=301,L]
RewriteRule   ^vehicules_occasions(.*) /voiture-occasion$1 [QSA,R=301,L]
RewriteRule   ^machines_agricoles(.*) /machines-agricoles$1 [QSA,R=301,L]
... 

# -- /voiture-occasion/.htaccess
RewriteEngine on
RewriteOptions inherit
RewriteRule ^(.*)-(.*)-(.*)-([0-9]+).htm$   vop_results.php?marqueA=$2&modeleA=$3&offset=$4&delimit=15  [L]

Merci de votre aide.

Cédric
 
Nouveau WRInaute
Bon ... j'ai mis en place une solution. Est-ce la bonne, est-ce simplement un palliatif ... en tout cas ça fonctionne.

Si vous trouvez une solution différente et/ou que vous jugez plus propre j'écoute volontier.
J'ai un fichier include en tête de chaque page. J'ai placé ce code au début de ce fichier.
Code:
if ( $_SERVER['HTTP_HOST'] != $_SERVER['SERVER_NAME'] )
{
	header ( 'Status: 301 Moved Permanently', false, 301) ;
	header ( 'Location: http://'. $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'] ) ;
}

Aujourd'hui j'ai un peu plus de 3000 pages indéxées par Google sur le .com. On verra comment et combien de temps il prend pour migrer sur le .fr.
 
Haut