Probleme avec ma redirection 301

WRInaute discret
Bonjour,
J'ai eu un petit soucis avec mon rewriting qui m'oblige a faire une redirection 301 sur des page qui ont étées indexées avant le plan de redirection final en gros une centaine de pages).
J'ai ce fichier la pour mon rewriting:
Code:
#--------------------------------------------------
# Répertoire : /
#--------------------------------------------------
# Le serveur doit suivre les liens symboliques :
Options +FollowSymlinks
# Activation du module de réécriture d'URL :
RewriteEngine on
#--------------------------------------------------
# Règles de réécriture d'URL :
#--------------------------------------------------
# Rewriting categories :
RewriteRule ^(.*)-(.*)-(.*)\.html$ /fiche.php?theme=$1&cat=$2&titre=$3 [L]
 # Rewriting sites :
RewriteRule ^(.*)-(.*)\.html$ /sites.php?theme=$1&cat=$2 [L]
# Rewriting categories :
RewriteRule ^(.*)\.html$ /categories.php?theme=$1 [L]

Je voudrais savoir si quelqu'un peut me dire ce qui ne va pas car j'ai fais pas mal de tests.
Au début j'ai voulu faire toutes les adresses une par une avec ce code
Code:
RewriteRule ancien_fichierl.htm  http://www.ton-nouveau-site.com/nouveau-fichier.htm [R=301]
Visiblement ça ne fonctionnait pas chez moi
suite à celà j'ai testé avec une règle de réécriture du style:
Code:
RewriteRule ^(.*)\.html$ /c,$1.html [R=301]
Ce qui n'a pas fonctionné non plus donc je suis un peu perdu.
Donc si quelqu'un a une idée je suis preneur.
Merci d'avance
 
WRInaute accro
Si tu veux rediriger quelques adresses une par une avec la redirection 301, tu mets ceci avant les règles de réécriture de ton annuaire:
Code:
RedirectPermanent ancien-fichier.htm  http://www.ton-nouveau-site.com/nouveau-fichier.htm
Ne pas utiliser d'expression régulière dans cette commande de redirection !

Jean-Luc
 
WRInaute discret
Merci ça fonctionne
j'ai mis ça:
Code:
RedirectPermanent /c,hobbies.html  http://www.yoohoo.fr/hobbies.html
sauf que j'a un truc bizar (je me retrouve avec une adresse du style -http://www.yoohoo.fr/hobbies.html?c,hobbies)
mais bon c'est juste pour eviter le duplicate content je vais pas chippoter.
 
WRInaute discret
J'ai un autre soucis avec des adresses qui ont une syntaxe du type
-http://www.monsite.fr/fiche.php?titre=ABcroisiere
je voudrais faire la même redirection permanente que pour les adresses suivantes vers:
-http://www.monsite.fr/tourisme-croisieres-ab.croisiere.html

J'ai ajouté ce genre de ligne dans mon .htaccess :

Code:
RedirectPermanent /fiche.php?titre=ABcroisiere http://www.yoohoo.fr/tourisme-croisieres-ab.croisiere.html

Mais ça ne fonctionne pas.
Donc si vous avez une idée je suis preneur.
Merci d'avance
 
WRInaute accro
C'est normal. C'est à cause des variables dans l'URL. Essaie ceci:
Code:
Options +FollowSymlinks
RewriteEngine on

RewriteCond %{QUERY_STRING} ^titre=(.*)$
RewriteRule ^fiche\.php$ http://www.yoohoo.fr/tourisme-croisieres-%1.html? [L,R=301]
J'explique différentes redirections 301 dans cet article: http://www.annuaire-info.com/redirection-301/

Jean-Luc
 
WRInaute discret
Celà ne fonctionne pas chez moi
Et le problème en plus c'est que c'était un exemple et que celà fonctionnera pas avec toutes mes catégories.
 
WRInaute accro
Dans ton premier message, tu citais:
Code:
RewriteRule ^(.*)\.html$ /c,$1.html [R=301]
Cette règle est correcte, mais où la places-tu dans ton .htaccess ?

Le fait est qu'elle est en conflit avec:
Code:
RewriteRule ^(.*)\.html$ /categories.php?theme=$1 [L]
Entre les deux, il faut choisir. :wink:

Jean-Luc
 
WRInaute discret
Je les ai mis dans un sens puis dans l'autre mais je n'avais pas l'effet voulu.
Mais ce n'est pas possible de supprimer les adresses une à une comme je l'ai fais avec d'autres liens:
Code:
RedirectPermanent /c,hobbies.html  http://www.yoohoo.fr/hobbies.html
Car même si c'est un peu plus long c'est aussi efficace et peut etre la seule solution dans mon cas.
 
WRInaute accro
Je pense que si tu mets les redirections avant les réécritures, cela devrait donner l'effet voulu, comme ceci:

Code:
#-------------------------------------------------- 
# Répertoire : / 
#-------------------------------------------------- 
# Le serveur doit suivre les liens symboliques : 
Options +FollowSymlinks 
# Activation du module de réécriture d'URL : 
RewriteEngine on 
#-------------------------------------------------- 
# Redirections 301 : 
#-------------------------------------------------- 
RewriteRule c\,hobbies\.html$ http://www.yoohoo.fr/hobbies.html [L,R=301]
#-------------------------------------------------- 
# Règles de réécriture d'URL : 
#-------------------------------------------------- 
# Rewriting categories : 
RewriteRule ^(.*)-(.*)-(.*)\.html$ /fiche.php?theme=$1&cat=$2&titre=$3 [L] 
 # Rewriting sites : 
RewriteRule ^(.*)-(.*)\.html$ /sites.php?theme=$1&cat=$2 [L] 
# Rewriting categories : 
RewriteRule ^(.*)\.html$ /categories.php?theme=$1 [L]
Note que j'ai remplacé le [R=301] par [L,R=301].

Jean-Luc
 
WRInaute accro
Tu parles de l'exemple que j'ai donné dans mon dernier post ou de ton dernier post ?

Tu peux donner quelques exemples de tes URL avec variable ?

Jean-Luc
 
WRInaute discret
En fait j'ai pas été trop clair depuis le début.
avec mon premier rewriting j'avais 3 types d'url pour les catégories, sites et fiches :
-http://www.yoohoo.fr/c,hobbies.html
-http://www.yoohoo.fr/hobbies-genealogie.html
-http://www.yoohoo.fr/fiche.php?titre=sitedegenalogie

J'aimais pas ce type de rewriting:
-http://www.yoohoo.fr/hobbies.html Ca j'ai réussis à régler le problème en mettant:
Code:
RedirectPermanent /c,hobbies.html  http://www.yoohoo.fr/hobbies.html

-http://www.yoohoo.fr/hobbies-genealogie.html Ca n'a pas bougé donc pas de soucis

il reste maintenant les dernières:
-http://www.yoohoo.fr/hobbies-genealogie-sitedegenealogie.html

Voilà mon soucis en fait. Je ne peut pas utiliser de règle de rewrting pour ma redirection car je n'ai pas toutes le variables dans l'ancienne adresse et je n'arrive pas à adapter le code que j'ai utilisé pour les catégories donc je suis coincé là.
 
WRInaute accro
J'espèe avoir mieux compris maintenant... :wink:

Pour rediriger des trucs comme:
- /fiche.php?titre=ABcroisiere vers http://www.yoohoo.fr/tourisme-croisieres-ab.croisiere.html
- /fiche.php?titre=sitedegenalogie vers http://www.yoohoo.fr/hobbies-genealogie-sitedegenealogie.html
- etc.
tu peux soit te baser sur la technique que je t'avais indiquée plus haut (en plaçant la série de règles au bon endroit dans ton .htaccess),
Code:
RewriteCond %{QUERY_STRING} ^titre=ABcroisiere$ 
RewriteRule ^fiche\.php$ http://www.yoohoo.fr/tourisme-croisieres-abcroisiere.html? [L,R=301]
soit faire la redirection 301 en php dans fiche.php (test de l'URL puis redirection en fonction de la variable, si l'URL est "fiche.php").

Jean-Luc
 
WRInaute accro
En PHP, comme dans les autres langages, tu peux faire des redirections 301 et des redirections 302. Suffit de choisir la bonne.

Jean-Luc
 
Discussions similaires
Haut