Rediriger d'un dossier vers un autre classique mais ...

WRInaute impliqué
Bonjour à tous,

j'ai un petit souci.
J'ai un site ( avec des URL rewrités) que je traduis peu a peu, et bien évidemment GG m'a indexé les anciennes pages.
Par exemple, je traduis shopping par e-commerce ( c'est juste un exemple :) )
Et donc, bien sur, example.com/shopping donne une erreur 404 car il est remplace par example.com/e-commerce
Je voudrais alors faire une redirection permanente de example.com/shopping/trucsenplume vers example.com/e-commerce/trucsenplume.
?category=shopping/vetements
Donc je met :
Code:
RedirectPermanent /shopping http://example.com/e-commerce
dans le htaccess.
Ca marche ...mais j'obtiens comme URL :
http://example.com/e-commerce?category=shopping/trucsenplume
au lieu de:
ttp://example.com/e-commerce/trucsenplume

Que je mette ma ligne au début ou à la fin de mon htaccess, c'est pareil.
J'ai essayé pas mal de choses j'arrive toujours au même résultat ( bon, presque toujours, car parfois aussi j'arrive à des erreurs 500 :( )
Bref, ca coince

Et je voudrais pas bousiller le reste du htaccess ...

Merci d'avance a ceux qui peuvent m'aider à resoudre ce petit souci
 
WRInaute accro
alaincassis a dit:
mais pourquoi il ne tient pas compte de "e-commerce" ?
bah sans voir le code c'est délicat a dire (déjà que parfois, même avec, c'est pas clair :D )

edit -> le "-" y est peut être pas pour rien
 
WRInaute impliqué
le "-" y est peut être pas pour rien
Non, sans le "-" , ca fait pareil .

Faudrait presque 2 htaccess ! , le 1er qui réécrit shopping en e-commerce, le 2e qui fasse son boulot de réécriture normale.
Il n'y aurait pas un flag magique à mettre ? j'en ai essayé pas mal mais aucun ne fonctionne.
 
WRInaute accro
le [L] a la fin d'une règle de réécriture interrompt le traitement RedirectPermanent peut être aussi.
Sinon :
mod_alias is designed to handle simple URL manipulation tasks. For more complicated tasks such as manipulating the query string, use the tools provided by mod_rewrite.
Je pense que mixer (dans ton cas) l'usage de mod_alias (RedirectPermanent) et mod_rewrite ensuite est peut être pas une bonne idée.

Ne peut tu pas passer de "shopping" à "e-commerce" via un rewriterule (sans condition) afin de laisser le reste des règles agir ensuite.
 
WRInaute impliqué
Oui, merci, j'ai réussi avec un rewriteRule, en tout début du htaccess:

Code:
RewriteRule ^shopping/(.*)$ http://www.example.com/e-commerce/$1 [R=301,L]
J'avais essayé pourtant des trucs de ce genre, mais la syntaxe devait être foireuse !
 
WRInaute impliqué
zeb a dit:
RewriteRule ^shopping/(.*)$ http://www.example.com/e-commerce/$1 [R=301,L]
le "R=301,L" fait que cette règle une fois évaluée (L) coupe court a toute autre règle et renvoie en 301 ...
Donc les suivantes ne sont pas évaluées.

Ensuite si tu attaque directement avec http://www.example.com/e-commerce/... il se passe quoi derrière ?

Pourtant, ça fonctionne très bien, et en attaquant avec http://www.example.com/e-commerce/trucsenplume/ ca arrive sur la bonne page.

J'ai essayé d'enlever le [R=301,L] , l'url http://www.example.com/e-commerce/trucsenplume/ continue à fonctionner, mais example.com/shopping/trucsenplume n'est plus réécrit et me donne une 404.
 
Discussions similaires
Haut