Conflit de rewriting ?

Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics

Lecuib
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 35
Inscription: 19 Jan 2007

Conflit de rewriting ?

Message le Sam Mar 24, 2007 10:28

Bonjour,
J'avais placé avec succès un rewriting pour obliger les www devant mon nom de domaine (hébergé chez OVH en mutualisé):
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.nomdedomaine\.fr [NC]
RewriteRule (.*) h**p://www.nomdedomaine.fr/$1 [QSA,R=301,L]

Aujourd'hui j'aurais besoin d'un rewriting suplémentaire pour remplacer automatiquement une page dans un sous répertoire. J'ai essayé sans succès une instruction du type
RewriteEngine On
RewriteRule ^ancienne\.htm$ nouvelle\.htm [R=301,L]

j'arrive à une erreur 404 avec une adresse du type h**p://www.nomdedomaine.fr/home/xxxxx/www/sousrepertoire/nouvelle.htm

J'ai trois questions :
1- Y-aurait-il incompatibilité entre les deux règles?

2- faut-il que cette nouvelle instruction soit rajoutée dans le .htaccess de la racine (avec le sous-répertoire):
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.nomdedomaine\.fr [NC]
RewriteRule (.*) h**p://www.nomdedomaine.fr/$1 [QSA,R=301,L]
RewriteRule ^sousrepertoire/ancienne\.htm$ sousrepertoire/nouvelle\.htm [R=301,L]

3- un plus doué que moi (c'est pas difficile) a-t-il vu où je fais l'erreur ?
Merci par avance

equideclic
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 6
Inscription: 3 Nov 2006

Le nom de domaine dans la rewrite rule pour redirection 301

Message le Sam Mar 24, 2007 10:40

RewriteRule ^ancienne\.htm$ nouvelle\.htm [R=301,L]

Il me semble que dans le cas d'une redirection 301 il te faut écrire dans la deuxième partie de ta rewrite Rule le nom de domaine.

Essaye donc
RewriteRule ^ancienne\.htm$ h**p://www.nomdedomaine.com/nouvelle\.htm [R=301,L]

A notament utiliser si tu veux récupérer le référencement des pages que tu as renommées et ainsi éviter le 404.

Lecuib
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 35
Inscription: 19 Jan 2007

Message le Sam Mar 24, 2007 10:58

Je viens de faire l'essai en plaçant l'instruction comme indiquée dans le .htaccess de la racine, mais la redirection ne se fait pas. Je reste sur l'ancienne page ...

equideclic
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 6
Inscription: 3 Nov 2006

Message le Sam Mar 24, 2007 12:39

Essaye en plaçant la rewrite rule avant ton rewrite cond.

De plus il me semble qu'il est inutile de protéger tes points dans la seconde section de ton rewriteRule.

Code: Tout sélectionner
RewriteEngine On
RewriteRule ^sousrepertoire/ancienne\.htm$ h**p://www.nomdedomaine.fr/sousrepertoire/nouvelle.htm [R=301,L]

RewriteCond %{HTTP_HOST} !^www\.nomdedomaine\.fr [NC]
RewriteRule (.*) h**p://www.nomdedomaine.fr/$1 [QSA,R=301,L]

Lecuib
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 35
Inscription: 19 Jan 2007

Message le Sam Mar 24, 2007 13:44

Pas mieux ...

equideclic
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 6
Inscription: 3 Nov 2006

Message le Sam Mar 24, 2007 15:17

C'est étrange lorsque tu a mis
Code: Tout sélectionner
RewriteEngine On
RewriteRule ^ancienne\.htm$ nouvelle\.htm [R=301,L]


La redirection se faisait mais avec une erreur, il récupérait l'architecture des dossier du serveur /home/www....

Pour corriger ce problème je penses qu'il faut mettre dans le sous répertoire

Code: Tout sélectionner
RewriteEngine On
RewriteRule ancienne\.htm h**p://www.nomdedomaine.fr/sousrep/nouvelle\.htm [R=301,L]


Avec la solution que je t'avais proposé j'intégrais dans le .htaccess racine la ligne
Code: Tout sélectionner
RewriteRule sousrepertoire/ancienne\.htm h**p://www.nomdedomanie.fr/sousrepertoire/nouvelle.htm [R=301,L]


S'il ne matche pas la ligne c'est que l'expression régulière est mal formée, car la rewritecond n'intervient qu'après ta redirection. Le [L] empêchant sa lecture elle ne devrait pas interagir.

Lecuib
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 35
Inscription: 19 Jan 2007

Message le Sam Mar 24, 2007 15:36

C'est bon ça marche en mettant dans le sous-répertoire

RewriteEngine On
RewriteRule ancienne\.htm h**p://www.nomdedomaine.fr/sousrep/nouvelle\.htm [R=301,L]

Merci beaucoup de ton aide.

equideclic
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 6
Inscription: 3 Nov 2006

Message le Sam Mar 24, 2007 15:39

de rien


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Formation recommandée sur ce thème :

Formation URL Rewriting et sites dynamiques : apprenez comment mettre en place la réécriture d'URL, comment optimiser vos URL et profiter de vos pages dynamiques pour booster votre référencement. Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités