Conflit de rewriting ?
8 messages
• Page 1 sur 1
Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics
- Lecuib
- Nouveau WRInaute

- Messages: 35
- Inscription: 19 Jan 2007
Conflit de rewriting ?
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
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

- Messages: 6
- Inscription: 3 Nov 2006
Le nom de domaine dans la rewrite rule pour redirection 301
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.
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.
- equideclic
- Nouveau WRInaute

- Messages: 6
- Inscription: 3 Nov 2006
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.
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]
- equideclic
- Nouveau WRInaute

- Messages: 6
- Inscription: 3 Nov 2006
C'est étrange lorsque tu a mis
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
Avec la solution que je t'avais proposé j'intégrais dans le .htaccess racine la ligne
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.
- 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.
8 messages
• Page 1 sur 1
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
