[Résolu]Redirection d'une catégorie d'articles
Ou comment je m'emmêle les pinceaux !
Support des Modules
le furtif Membre non connecté
Booster Fuzil
-
Booster Fuzil
- Voir le profil du membre le furtif
- Inscrit le : 21/04/2009
- Site internet
Après avoir recherché sur le forum un problème similaire, j'avoue ne pas avoir trouvé, je vais donc essayer de vous décrire au mieux ce qui m'amène vers vous.
Mon site est hébergé sous le nom de domaine tekniko.fr, au départ de l'aventure, le site "traité" deux sujets : La musique et Gnu/linux. Puis un jour, je décide de séparer ces deux sujets qui n'ont pas grand chose en comun. J'ai donc crée un sous domaine linux.tekniko.fr sur lequel j'ai installé PHPBoost pour y héberger tous mes tutos sur Gnu/Linux. A la suite de ça, dans le .htaccess du site principale (tekniko.fr) j'ai placé une redirection 301 afin que les visiteurs souhaitant consulter les tutos soient automatiquement redirigés vers le sous domaine, et sur l'article qu'ils ont choisit biensur.
Voila pour l'idée, cela fonctionnait au départ, sauf que je viens de me rendre compte que ce n'est plus le cas, mais qu'en plus, les visiteurs souhaitant se rendre dans le module download du premier site (tekniko.fr) arrivé sur une page qui leurs indique que la page demandée n'existe pas, et là c'est le drame !

Voici l'environement :
Hébergement : PHPNux
Site 1 => tekniko.fr/cms => racine du premier site (le point de départ) => http://www.tekniko.fr/cms/index.php
Site 2 => linux.tekniko.fr => racine du second site sur lequel il n'y a que les tutos => http://linux.tekniko.fr/
Les deux PHPBoost sont à jour (3.08)
L'url rewriting est activé sur les deux sites via l'interface PHPBoost.
La catégorie hébergeant les tutos sur le site de départ posséde l'id 2 (/articles/articles-2-), sur le site d'arrivée, l'id passe à 1 (/articles/articles-).
Voici le code htaccess que j'ai inscrit, via l'interface admin du site, pour faire la redirection, et qui fonctionnait jusqu'a présent (enfin, jusqu'a ce que je m'en rende compte !)
Code :
RewriteEngine on
RedirectMatch 301
/articles/articles-2-(.*) http://linux.tekniko.fr/articles/articles-$1A vrai dire, j'ignore ce qu'il c'est passé car je n'ai rien modifié depuis un bon bout de temps maintenant, je me permet donc de demander votre aide afin de rediriger cette catégorie correctement vers le sous domaine, j'ai lu pas mal de chose sur les redirections, trop peut être car je me mélangecorrectement maintenant !
N'hésitez pas à me demander d'autres précisions si besoin

Actuellement, j'ai enlevé la redirection pour éviter le drame

D'avance, je vous remercies pour vos lumières et m'excuse au cas ou je n'aurai pas posté au bon endroit
Édité par le furtif Le 31/10/2010 à 12h56
PHPboost 3
ben.popeye Membre non connecté
-
Modérateur
- Voir le profil du membre ben.popeye
- Inscrit le : 04/08/2005
- Site internet
- Groupes :
-
Equipe Historique
Je remarque une chose : tu captures toute la suite de l'URL après -2, mais -2 tu ne le conserves pas dans l'URL de redirection, est-ce que ça ne vient pas de là ?
Un problème, une question ? Cherchez dans la FAQ ou la documentation. Si vous ne trouvez pas la réponse, demandez du support sur le forum.
Bjarne Stroustrup, inventeur du C++ :"There are two ways to write error-free programs; only the third works."
le furtif Membre non connecté
Booster Fuzil
-
Booster Fuzil
- Voir le profil du membre le furtif
- Inscrit le : 21/04/2009
- Site internet
Ce n'est pas PHPBoost qui me le dit, mais Chrome (idem avec FireFox) qui me dit que le lien semble brisé, je me suis mal exprimé, mes excuses

Effectivement, c'est une belle erreur de ma part, je pensais que étant donnée que je n'avais qu'une seule catégorie sur le second site, l'id reprenait à 1.
=> Leçon 1 : Me trouver des vrais yeux pour bien regarder mes urls
Si je peux me permettre une dernière question, j'ai modifié mon .htaccess en ajoutant le -2 manquant, comme ceci :
Code :
RewriteEngine on
RedirectMatch 301
/articles/articles-2-(.*) http://linux.tekniko.fr/articles/articles-2-$1
et aussi comme ceci :
Code :
http://linux.tekniko.fr/$1
http://linux.tekniko.fr/articles/articles-2$1
http://linux.tekniko.fr/articles/articles-2-$1
http://linux.tekniko.fr/articles/articles-2-$1.php
Mais ce n'est pas bon, mon navigateur m'indique toujours que les liens sont brisés, pourriez vous me dire, s'il vous plait, comment placer cette variable, ou tout simplement m'orienter vers une doc ?
Merci beaucoup pour votre aide.
PHPboost 3
ben.popeye Membre non connecté
-
Modérateur
- Voir le profil du membre ben.popeye
- Inscrit le : 04/08/2005
- Site internet
- Groupes :
-
Equipe Historique
Un problème, une question ? Cherchez dans la FAQ ou la documentation. Si vous ne trouvez pas la réponse, demandez du support sur le forum.
Bjarne Stroustrup, inventeur du C++ :"There are two ways to write error-free programs; only the third works."
le furtif Membre non connecté
Booster Fuzil
-
Booster Fuzil
- Voir le profil du membre le furtif
- Inscrit le : 21/04/2009
- Site internet
Je ne sais pas si j'ai bien compris la question, je vais prendre un exemple.
Sur Tekniko.fr, j'ai un article sur le monitoring avec conky, sur le site de base, son url est la suivante :
=> http://www.tekniko.fr/cms/articles/articles-2-41+monitoring-systeme-avec-conky.php
Si je clic dessus, je devrais arriver sur le même article, mais sur le sous domaine, donc avec l'url suivante :
=> http://linux.tekniko.fr/articles/articles-2-41+monitoring-systeme-avec-conky.php
Mais à priori, le navigateur cherche quand même à aller sur la première url (sur tekniko.fr). Quand il me dit que le lien semble brisé, il est sur la première, et non sur la deuxième, comme si il voyait qu'effectivement il y a une redirection, mais il ne trouve pas l'adresse vers laquelle il doit aller.
Et accessoirement, dans Chrome et consorts, quand on clic sur un lien, on voit en bas a gauche ce qu'il essai charger, et en l’occurrence, il tente sa chance sur la première url...
Voila, je ne sais pas si je répond bien à votre question ! Au cas ou, j'ai remis le code htaccess si vous voulez vérifier par vous même.
Encore merci pour votre aide.
Nico.
Édité par le furtif Le 29/10/2010 à 14h29
PHPboost 3
ben.popeye Membre non connecté
-
Modérateur
- Voir le profil du membre ben.popeye
- Inscrit le : 04/08/2005
- Site internet
- Groupes :
-
Equipe Historique
Un problème, une question ? Cherchez dans la FAQ ou la documentation. Si vous ne trouvez pas la réponse, demandez du support sur le forum.
Bjarne Stroustrup, inventeur du C++ :"There are two ways to write error-free programs; only the third works."
le furtif Membre non connecté
Booster Fuzil
-
Booster Fuzil
- Voir le profil du membre le furtif
- Inscrit le : 21/04/2009
- Site internet
Code :
RewriteEngine on
RedirectMatch 301
/articles/articles-2-(.*) http://linux.tekniko.fr/articles/articles-$1
Je me suis rendu compte du soucis il y a seulement trois ou quatre jours, et par le plus grand des hasards, c'est en cliquant sur un lien du site, qui mène vers la section download, que j'ai vu qu'il y avait un problème (le même, lien brisé), par curiosité, j'ai cliqué sur un autre, au hasard aussi, menant cette fois ci vers un tuto Linux... Idem, lien brisé.
j'ai donc supprimer la redirection pour tester, les liens vers la section download re-fonctionnaient et bien sur, plus de redirection.
Je viens de me rendre compte d'une chose encore moins "glop", c'est que ce sont tout les liens du site qui sont affectés, tous sont brisés lorsque l'on clique dessus, excepté ceux que j’appellerai les "liens bases", c'est à dire les racines de chaque module, par exemple :
http://www.tekniko.fr/cms/gallery/gallery.php
http://www.tekniko.fr/cms/media/media.php
http://www.tekniko.fr/cms/news/news.php
toutes les urls de ce style fonctionnent, pourtant cela semble aléatoire puisque celle ci fonctionnent :
http://www.tekniko.fr/cms/articles/articles.php?cat=10
http://www.tekniko.fr/cms/articles/articles.php?cat=1
La ou je ne percute pas, c'est que l'url rewriting est activé, pourtant, si je clique sur une news, l'url est bien réécrite mais le navigateur me dit que le lien est brisé, cependant, si je vais sur la même news, mais cette fois ci en passant par son lien dans l'interface d'administration du module news, j'arrive sur la news en question, mais l'url n'est plus réécrite, exemple avec la premiére news affichée sur le site :
Lien sur le site :
http://www.tekniko.fr/cms/news/news-0-64+le-furtif-code-major-techno-progressive.php
=> Lien brisé
Lien vers la même news, mais via l'interface d'administration :
http://www.tekniko.fr/cms/news/news.php?id=64
=> Bingo, ça roule
Bon, tout cela est un peu brouillon et mélangé, pour simplifier, si je mets mon code dans le htaccess, 90% des liens réécrit sont brisés, et sans, tout fonctionne, je ne vois pas pourquoi le code affecte tout les liens, et pas seulement ceux qu'il est censé rediriger !
Je ne sais pas si je suis très clair, et ma démarche, ou logique pour essayer de comprendre n'est peut être pas la bonne !
PHPboost 3
ben.popeye Membre non connecté
-
Modérateur
- Voir le profil du membre ben.popeye
- Inscrit le : 04/08/2005
- Site internet
- Groupes :
-
Equipe Historique
Essaie dans un premier temps de faire une redirection sans expression régulière, seulement sur un fichier (par exemple /download/download.php) et de voir si déjà une redirection simple fonctionne à tous les coups.
Ensuite, tu pourras complexifier.
Sinon, les logs Apache pourront probablement t'aider à comprendre les erreurs si erreurs tu rencontres, car si ton .htaccess n'est pas correct tu as une erreur 500 sans aucune explication.
Un problème, une question ? Cherchez dans la FAQ ou la documentation. Si vous ne trouvez pas la réponse, demandez du support sur le forum.
Bjarne Stroustrup, inventeur du C++ :"There are two ways to write error-free programs; only the third works."
le furtif Membre non connecté
Booster Fuzil
-
Booster Fuzil
- Voir le profil du membre le furtif
- Inscrit le : 21/04/2009
- Site internet
Merci de m'avoir fixer cette démarche, elle m'a permis de résoudre mon problème, je suis parti comme tu me l'a suggéré de redirections simples vers de plus complexes.
J'ai d'abord commencé par rediriger tout le module article de tekniko.fr vers linux.tekniko.fr, cela fonctionnait, je me suis donc attaqué à la catégorie 2, celle que je voulais justement rediriger et je me suis rendu compte que l'url de base de cette catégorie était :
http://www.tekniko.fr/cms/articles/articles-2+linux.php
Je ne reprenait pas ce + après le -2 dans ma redirection, j'ai donc modifié mon htaccess comme ceci :
Code :
RewriteEngine on
RedirectMatch 301
/articles/articles-2+(.*) http://linux.tekniko.fr/articles/articles-2+$1
Et là tout est rentré dans l'ordre, tout fonctionne bien, après, il me reste une incompréhention, c'est que ce + change de place dans l'url, il vient se placer après l'id de l'article, par exemple :
Url de base de la catégorie 2 => http://www.tekniko.fr/cms/articles/articles-2+linux.php
Url de mon dernier article => http://www.tekniko.fr/cms/articles/articles-2-49+3-how-to-ftp-over-ssl.php
Dans mon code de redirection, je ne précise pas qu'il y a un id qui va venir entre l'id catégorie et le titre de l'article... Mais bon, ça marche comme cela, je passe donc ce sujet en résolue, même si j'aimerai bien comprendre cette subtilité !

Merci ben.Popeye pour ton aide précieuse.
Édité par le furtif Le 31/10/2010 à 12h57
PHPboost 3
ben.popeye Membre non connecté
-
Modérateur
- Voir le profil du membre ben.popeye
- Inscrit le : 04/08/2005
- Site internet
- Groupes :
-
Equipe Historique
Donc 2+ ne signifie pas 2 suivi de + mais au moins une fois 2 (22222 serait accepté).
Remplace donc le + par un + pour supprimer cet effet de bord et regarde si à tout hasard ça ne règlerait pas ton problème.
Un problème, une question ? Cherchez dans la FAQ ou la documentation. Si vous ne trouvez pas la réponse, demandez du support sur le forum.
Bjarne Stroustrup, inventeur du C++ :"There are two ways to write error-free programs; only the third works."
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie