| Auteur | |
|---|---|
| Dim | # 14 Mar 2010 - 10:05:43 |
| 150 Posts |
Bonjour à toute et à tous, Je me suis mis dans la tête de réécrire les url d'une page pour apprendre le fonctionnement des url rewriting avant de continuer à développer mon site. Mais depuis 3jours que je lis des sujets à droite à gauche, les explications d'apache, d'ovh,... j'ai l'impression qu'il y a un gros truc qui m'échappe, tellement gros que je ne le vois pas. J'avoue mon incompétence avec les regex même si j'en comprend bien le principe et les bases. Donc voila mon problème. J'aimerais avoir une url du type : www.monsite.fr/blog/titre-de-mon-article-1 Avec 1 correspondant à l'id de l'article. et www.monsite.fr/blog/titre-de-mon-article-1-2 Avec 2 correspondant au numéro de la page. C'est vraiment pas sorcier ce que je demande, mais il y a un truc vraiment basique qui m'échappe et que je ne trouve nul part. La forme d'url "propre" doit bien être directement dans mon liens? Genre : <a href:"../blog/titre-de-mon-article-1"></a> sachant que le titre de l'article est créer par une variable php et que le numéro de l'article aussi. Ensuite je suis donc censé faire mon fichier .htaccess avec mes conditions de réécriture. genre ../blog/titre-de-mon-article-1 deviens ../blog/index.php?id_article=1 ce qui donne "concrètement"
Il parait que le /? après ^est obligatoire chez ovh, pour le reste vous pouvez constatez que je veux récupérer que l'id de l'article étant donné que le titre réécrit pour l'url ne m'intéresse pas. Donc c'est une règle très simple mais je n'y arrive pas J'ai essayé de plusieurs manière genre encore plus simple tel que : RewriteRule ^/?([0-9]+)\.html$ /article.php?id_article=$1 [L] Mais ça ne fonctionne pas et je suis sûr que certain en rigole tellement c'est simple. Si une bonne âme pouvait me mettre sur la voix de la réussite je serais ravis. Merci d'avance et désolé pour ce poste complètement débutant mais depuis 3jours que je passe à tester rien ni fait. Modifié par Dim (18 Mar 2010 - 11:34) Hmmm, I don't know. |
| Heyoan | # 14 Mar 2010 - 11:42:45 |
| Modérateur 8101 Posts |
Salut, d'après ton RewriteBase je suppose que le .htaccess est placé dans le répertoire blog (à noter qu'une fois en ligne il faudra enlever /test qui doit correspondre à ta racine en local : http://localhost/test/blog/... ). Alors en fait tu as 2 règles distinctes : |
| Heyoan | # 14 Mar 2010 - 11:52:47 |
| Modérateur 8101 Posts |
PS :Dim a écrit :Euh... non ! Mais par contre certains hébergeurs obligent l'ajout du slash dans la redirection : ce ne sera donc pas articles.php?id_article=$1 mais /articles.php?id_article=$1 (il faut donc tester avec le slash si la première écriture ne fonctionne pas) Sinon d'une manière générale il faut partir des liens attendus et ne correspond pas à www.monsite.fr/blog/quelquechose-33 Modifié par Heyoan (14 Mar 2010 - 11:55) |
| Patidou | # 14 Mar 2010 - 12:07:04 |
| 2173 Posts |
Je ne comprends pas bien… Tu pars d'url significatives pour arriver à un système plus classique avec articleid=? Si tu veux garder les urls signficatives, tu peux récupérer le QUERY_STRING ou le PATH_INFO, et tu analyse l'url pour afficher la bonne page. Dans ta base de données, url = id. Tu peux avoir un fichier blog.php dans ton dossier Test, ce qui donnerait : http://localhost/test/blog.php/titre-de-mon-article Avec multiview activé ça donnerait http://localhost/test/blog/titre-de-mon-article Pour la page : http://localhost/test/blog/titre-de-mon-article/page/2 Je ne suis pas dev, j'espère ne pas avoir dit de bêtises. Modifié par Patidou (14 Mar 2010 - 12:09) Avertissement : il est inutile de m'envoyer des mp pour demander de répondre à vos sujets sur le forum. Je répond si j'ai un élément de réponse et si j'ai le temps. Merci d'avance. |
| Dim | # 14 Mar 2010 - 12:09:09 |
| 150 Posts |
Merci Heyoan, Effectivement je savais qu'il fallait faire deux règles mais je n'arrivais déjà pas à en faire une alors pas la peine de faire la deuxième D'ailleurs pour dire vrai, il n'y en a pas que deux puisque j'ai aussi le système de tag et de catégorie à traiter sous la même forme à une bidouille prêt. /test correspond plutôt à un sous fichier de mon site, du coup je pense qu'il faut que je le conserve. (J'ai tester et il faut bien que je le conserve) Par contre, d'après ce que j'ai lu pour ovh, il faut ajouter ^/? mais je viens de tester sans et ça fonctionne... j'ai du lire un truc erroné. Pour finir, pourquoi ne pas mettre Options +FollowSymlinks ? C'est inutile? Merci merci merci Heyoan... Mon sauveur PHP (Je te dédicacerais un remerciement sur mon site si un jour je le fini et je lui donne du contenu, Mais tu n'a pas de site web???) PS : Je me sent quand même ridicule d'avoir chercher pendant trois jours un truc aussi basique. Je devais pas être dans mes bonnes journées [EDIT] Oups désolé j'ai pas lu les nouveaux commentaires. Je réédite une fois lu ^^ Modifié par Dim (14 Mar 2010 - 12:11) Hmmm, I don't know. |
| Dim | # 14 Mar 2010 - 12:23:33 |
| 150 Posts |
Heyoan a écrit : Heuuu je comprend pas ce que tu m'explique. Il faut pas partir de la forme www.monsite.fr/blog/titre-de-mon-article-1 ou de la forme www.monsite.fr/blog/index.php?titre-de-mon-article$id_article=1 dans la balise a? Patidou a écrit : Bein j'envoie dans l'url via la balise a une url "propre" que ensuite je réécrit via les règles pour pouvoir avoir mon id_article=1 (ou un autre chiffre) Ensuite dans ma page php je récupère via get mon id et je fais mes requètes.... C'est pas logique ce que je fais? Patidou a écrit : Heuuu la je suis trop nul pour comprendre ce que tu me dit... Je vais planché dessus pour comprendre mais je vois pas pour le moment la différence entre ce que je fais et le résultat de ce que tu me propose... Cependant, si je pouvais arriver à un système tel que celui que tu me montre : http://localhost/test/blog/titre-de-mon-article/page/2 Avec des / entre chaque élément ca m'intéresse. Bon bein j'ai encore du pain sur la planche Hmmm, I don't know. |
| Heyoan | # 14 Mar 2010 - 15:52:13 |
| Modérateur 8101 Posts |
Dim a écrit :Les liens doivent être composés avec la forme "esthétique" ( www.monsite.fr/blog/titre-de-mon-article-1 ) qui sera rewritée pour être fonctionnelle ( www.monsite.fr/blog/articles.php?id_article=1 ). Toi dans ta règle tu indiquais que l'url finissait par .html ce qui est faux. Dim a écrit :Ce sont les mêmes règles que celles que je t'ai données plus haut en remplaçant les tirets (-) par des slashs (/). Par contre dans ce cas il faudra faire gaffe aux « répertoires virtuels » en utilisant l'élément BASE. |
| Dim | # 14 Mar 2010 - 23:25:09 |
| 150 Posts |
Bonjour (ou bonsoir plutot pour vous),Heyoan a écrit : Effectivement, j'avais pas fait attention Heyoan a écrit : J'avais deja lu le premier lien, je vais mettre ca en oeuvre ce soir et tester. Je reviendrais mettre resolu si j'ai plus de probleme Sinon je suis quand meme intrigue par les remarques de Patidou... J'aimerais bien en savoir plus, vous pourriez me faire une petite explication svp.. Car j'ai lu ces liens mais heuuu je vois pas l'interet d'un tel systeme.Merci a vous deux pour votre temps. Hmmm, I don't know. |