Aller au contenu

Redirection en fonction de l'url


Sujets conseillés

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 ?

Lien vers le commentaire
Partager sur d’autres sites

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/

Lien vers le commentaire
Partager sur d’autres sites

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 ?

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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é.

Lien vers le commentaire
Partager sur d’autres sites

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.

Lien vers le commentaire
Partager sur d’autres sites

Alors, à force de tâtonnement j'ai fini par trouver une solution qui semble fonctionner :)

RewriteEngine on 
RewriteCond %{HTTP_HOST} ^www\.monsitetemplate1\.com
RewriteRule (.*) http://www.monsitetemplate1.com/$1 [R=301]
RewriteCond %{HTTP_HOST} ^www\.monsitetemplate2\.com
RewriteRule (.*) 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 :P

Lien vers le commentaire
Partager sur d’autres sites

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 ;)

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...