Xuor Posté 3 Juin 2008 Posté 3 Juin 2008 Bonjour, j'ai un petit souci auquel j'ai pas encore trouvé de solution malgrès mes recherches. Suite a une migration, l'arborescence de mon site est passé de www.monsite.com/rep1/rep2 à www.monsite.com/rep2 (rep1 a été supprimé de l'arborescence) Je voudrai donc que les utilisateurs ayant le site dans leurs favoris/marques-pages soit redirigés automatiquement. Simple a première vue avec un bête : RedirectPermanent /rep1/ www.monsite.com/rep2/ Seulement mon cas est plus compliqué que ça, car selon l'url le template affiché est différent. Il faudrai donc que : www.monsite.com/rep1/rep2 redirige vers www.monsite.com/rep2 et www.monsitetemplate2.com/rep1/rep2 vers www.monsitetemplate2.com/rep2 Comment faire donc pour que la redirection prenne en compte l'adresse complète, pour faire la différenciation, et pas seulement le chemin local au serveur comme le fait RedirectPermanent ?
mjouan Posté 3 Juin 2008 Posté 3 Juin 2008 Ajoute une condition devant la règle: RewriteCond %{HTTP_HOST} ^www\.monsite\.com$ Par exemple : RewriteCond %{HTTP_HOST} ^www\.monsite\.com$RedirectPermanent /rep1/ www.monsite.com/rep2/
Xuor Posté 3 Juin 2008 Auteur Posté 3 Juin 2008 Merci pour cette réponse rapide, cependant ça ne fonctionne pas encore. En adaptant cette solution a mon cas, j'ai obtenu le résultat suivant : RewriteCond %{HTTP_HOST} ^www\.monsitetemplate1\.com$RedirectPermanent /home/ http://www.monsitetemplate1.com/RewriteCond %{HTTP_HOST} ^www\.monsitetemplate2\.com$RedirectPermanent /home/ http://www.monsitetemplate2.com/ Cependant je suis toujours redirigé vers http://www.monsitetemplate1.com/ même lorsque que viens de l'adresse http://www.monsitetemplate2.com/ Aurais-je oublié quelque chose ?
mjouan Posté 3 Juin 2008 Posté 3 Juin 2008 As tu essayé comme cela: RewriteCond %{HTTP_HOST} ^www\.monsitetemplate1\.com$RewriteRule ^home/(.*) http://www.monsitetemplate1.com/$1 [R=permanent]RewriteCond %{HTTP_HOST} ^www\.monsitetemplate2\.com$RewriteRule ^home/(.*) http://www.monsitetemplate2.com/$1 [R=permanent] Marc
Xuor Posté 3 Juin 2008 Auteur Posté 3 Juin 2008 Avec cette méthode j'aboutis carrément sur une page introuvable. Ceci dis je pense pas que mon problème se trouve au niveau de la redirection, puisqu'avec la solution précédente elle fonctionnais correctement pour www.monsitetemplate1.com, je pense que le soucis est au niveau de la condition, quelque soit l'adresse c'est le premier RedirectPermanent qui est effectué.
mjouan Posté 3 Juin 2008 Posté 3 Juin 2008 Sincèrement je te conseille plutôt d'utiliser RewriteRule Pourrais tu remettre la règle et envoyer l'URL (via Messenger si tu préfères rester discret) STP Il s'agit certainement d'un petit caractère en trop ou en moins, ça doit pouvoir ce débugger.
Xuor Posté 3 Juin 2008 Auteur Posté 3 Juin 2008 Alors, à force de tâtonnement j'ai fini par trouver une solution qui semble fonctionner RewriteEngine on RewriteCond %{HTTP_HOST} ^www\.monsitetemplate1\.comRewriteRule (.*) http://www.monsitetemplate1.com/$1 [R=301]RewriteCond %{HTTP_HOST} ^www\.monsitetemplate2\.comRewriteRule (.*) http://www.monsitetemplate2.com/$1 [R=301] Ce que je ne comprend pas vraiment, c'est qu'il me semble que j'ai fait complètement disparaitre la notion du répertoire "home" et pourtant ça marche bien, si je tape www.monsite.com/home/public/accueil.php, je suis bien redirigé vers www.monsite.com/public/accueil.php Quoi qu'il en soit, connaitriez-vous des bonnes adresses pour apprendre un peut tout ce qui touche au Rewriting ? parce que c'est bien d'y arriver en tâtonnant, mais c'est encore mieux de savoir ce qu'on fait
mjouan Posté 3 Juin 2008 Posté 3 Juin 2008 Ca marche peut être mais là il y a quelque chose de pas logique !!! Pourriez vous m'envoyer directement l'URL de votre site pour jeter un coup d'il SVP Marc PS: http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html
Xuor Posté 3 Juin 2008 Auteur Posté 3 Juin 2008 C'est ok j'ai compris cette histoire de répertoire fantôme, en fait le htaccess se trouve dedans justement (vu qu'a la base j'étais parti sur une redirection "générale" des pages pointant sur ce répertoire, je l'avais recrée, mais vide, dans ma nouvelle architecture) J'ai donc déplacé le .htaccess à la racine de mon site, rajouté le ^home/ dans les RewriteRules et supprimé ce dossier "home" vide qui ne me servais plus a rien Merci pour les coups de main qui m'ont aidé à trouver la solution à mon problème, et merci pour le lien, je vais aller me culturer un peu de ce pas
mjouan Posté 3 Juin 2008 Posté 3 Juin 2008 Merci pour votre retour, c'est en effet bcp plus clair du coup ;-)
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant