Jam Posté 6 Juillet 2006 Posté 6 Juillet 2006 (modifié) Salut à tous J'aimerai réécrire une adresse du type : mondomaine.com/annuaire/categorie.php?categorie=Musique J'avai réussi lorsque les categorie de mon annuaire avait des adresse du type : http://mondomaine.com/annuaire/categorie.php?categorie=8 Mais j'avou qu'en lettre...j'ai du mal Ah et une deuxieme question la réécriture d'url ce fait t'elle automatiquement ? Je m'explique : j'ai sur une page un lien qui ce nome par exemple : http://mondomaine.com/fichier.php?action=7 (ok ?). Lorsque je clic sur le lien, l'addresse de la page aparait non Réécrite (http://mondomaine.com/fichier.php?action=7) pourtant la réécriture doit fonctionner puisque si je tape (par exemple) à la main l'addresse http://mondomaine.com/action-7.html cela fonctionne. Pourquoi la page se renome-t-elle pas automatiquement lorsque l'on pointe sur le lien? Merci d'avance Modifié 6 Juillet 2006 par Jam
Dan Posté 6 Juillet 2006 Posté 6 Juillet 2006 Bonjour, Tu démontres une incompréhension de la réécriture d'URLs comme beaucoup de débutants. Et non, elle n'est pas automatique du tout :!: C'est à toi de modifier les sources de tes pages pour que les URLs soient sous la nouvelle forme. Lorsque tu as une url nommée action-7.html, ce sont les règles de ton fichier .htaccess qui vont traduire cela en fichier.php?action=7 ... et pas l'inverse. Ceci tout simplement pour présenter au serveur web (Apache/Php/MySql) le bon fichier (fichier.php), avec le bon paramètre (7) de manière à ce qu'il puisse te concocter une page. Quant-à te lancer dans la réécriture d'URLs avec des noms tels que "musique" il faudra que ton script puisse récupérer la page souhaitée grâce à cette variable qui contiendra musique au lieu d'un nombre. cela suppose de réécrire ce fichier pour les interrogations à la base de données, et aussi t'assurer que ces données sont uniques. Ce n'est certainement pas simple à faire. Dan
Théo B. Posté 6 Juillet 2006 Posté 6 Juillet 2006 Pour reprendre un peu la partie sur les chiffres, je pense que tu pourrais aussi (ce qui simplifierait grandement les choses) mettre, au lieu de action-7, action-7-musique. Ton fichier .htaccess ne passerait que l'id (7) dans l'url finale, mais ton référencement en serait amélioré.
Jam Posté 6 Juillet 2006 Auteur Posté 6 Juillet 2006 Ben pour le moment cela fonctionne plutot bien comme ca: mondomaine.com/annuaire/categorie.php?categorie=Musique Mes pour la réécriture d'url effectivement je ne suis pas sur d'avoir tout saisi Par exemple je vois sur ce votre site cette adresse : webmaster-hub.com/publication/article135.html Il me semblai que cela etait justement de la réécriture d'url (?) Hie hie hie je me perd
Dan Posté 6 Juillet 2006 Posté 6 Juillet 2006 Ah, si ton programme categorie.php accepte déjà le paramètre categorie=musique, c'est simple ! Tu voudrais quoi comme URL à la place ?
Jam Posté 6 Juillet 2006 Auteur Posté 6 Juillet 2006 idéalement je voudrai que: mondomaine.com/annuaire/categorie.php?categorie=Musique Devienne mondomaine.com/annuaire/musique.html Voir meme un repertoire virtuel: mondomaine.com/annuaire/musique/
Théo B. Posté 6 Juillet 2006 Posté 6 Juillet 2006 (modifié) Il te suffit dans ce cas de mettre un simple .htaccess : Options +FollowSymlinksRewriteEngine onRewriteRule ^([a-zA-Z0-9\-]*)$ categorie.php?categorie=$1 [L][L] Attention, ça redirigera tous les répertoires vers categorie.php... Je te conseille de faire des regles pour les repertoires images et autres avant. //Edité : une petite erreur de code :x Modifié 6 Juillet 2006 par Théo B.
Jam Posté 6 Juillet 2006 Auteur Posté 6 Juillet 2006 (modifié) Hum ok j'avai pas vu pour l'érreur Eu ben en faite du coup il ne me trouve plus aucune page dans le repertoire nomdomaine.com/annuaire/ Cela devien une erreur 404 Modifié 6 Juillet 2006 par Jam
Dan Posté 6 Juillet 2006 Posté 6 Juillet 2006 Normal, parce que cette règle redirige aussi categorie.php vers... categorie.php Il faut la modifier et ajouter un \.html en fin de premier argument. Dan
Compte supprimé Posté 6 Juillet 2006 Posté 6 Juillet 2006 Je vais essayer de m'y coller, car malgré les explications du pro qu'est Dan il semble que tu ne comprends pas tout. La pédagologie c'est mon métier La réécriture d'url indique simplement au seveur de renvoyer une autre page que celle qui a été demandée. Ex: tu demandes http://mondomaine.com/action-7.html (page qui n'existe pas sur ton serveur) et le serveur te renvoie la page http://mondomaine.com/fichier.php?action=7 (page qui existe). Pour demander http://mondomaine.com/action-7.html tu as 2 solution : 1/ la taper directement dans la barre d'adresse de ton navigateur 2/ suivre un lien Tu as donc compris que le serveur le réécrit pas les liens. C'est à toi de transformer toutes les url de tes pages pour faire apparaitre les bons liens, c'est à dire ceux sous la forme http://mondomaine.com/action-7.html Pour ton deuxième pb : utiliser "des lettres", c'est pareil, annuaire/musique/ > annuaire/categorie.php?categorie=Musique pourait être traduit par Rewriterule ^annuaire/([a-z0-9_-]+)/?$ annuaire/categorie.php?categorie=$1 [QSA,L] Au début de ta page categorie.php il faut "identifier" le paramètre categorie. Tu peux par exemple faire <?php if ($_GET['categorie']=="Musique") include (...); else if ($_GET['categorie']=="Chant") include (...); ... Voila.
Jam Posté 6 Juillet 2006 Auteur Posté 6 Juillet 2006 Je comprend bien pour la réécriture d'url. <?phpif ($_GET['categorie']=="Musique") include (...); else if ($_GET['categorie']=="Chant") include (...); Cette solution me semble fastidieuse non ? Car si je doit redéfinir toute les catégorie d'un annuaire (par exemple...) cela risque d'etre long si il y'en à 190 !
Compte supprimé Posté 6 Juillet 2006 Posté 6 Juillet 2006 C'était une solution. Une autre solution serait de rechercher dans ta base de donnée un champ qui corresponde au paramètre (au lieu de rechercher un ID). Il faut veiller a ce que ce champ de ta base soit unique
Jam Posté 6 Juillet 2006 Auteur Posté 6 Juillet 2006 Ok, je vais déja fonctionner dans l'ordre Pour le .htaccess : Rewriterule ^annuaire/([a-z0-9_-]+)/?$ annuaire/categorie.php?categorie=$1 [QSA,L] Cela ne marche pas j'ai une erreur 404 esce le chemin qui ne serai pas bon ?
Compte supprimé Posté 6 Juillet 2006 Posté 6 Juillet 2006 404 sur quelle url ? Donne moi une de tes règles avec numéro qui marche.
Jam Posté 6 Juillet 2006 Auteur Posté 6 Juillet 2006 (modifié) Alors le chemin au complet : mondomaine.com/site/annuaire/categorie.php?categorie=Musiques Voili voilou Edit : j'avai mis une petite erreur voila c'est le bon chemin Modifié 6 Juillet 2006 par Jam
Théo B. Posté 6 Juillet 2006 Posté 6 Juillet 2006 Mais où mets tu ton .htaccess ? Normalement, il devrait être dans le dossier site, et pas à la racine.
Jam Posté 6 Juillet 2006 Auteur Posté 6 Juillet 2006 Il est dans le Dossier /annuaire/ Hum autemp pour moi... Je ne l'avai pas mis dans le bon dossier
Jam Posté 6 Juillet 2006 Auteur Posté 6 Juillet 2006 En tout cas, Merci Beaucoup à tous pour vos réponses et pour le temp que vous avez pris pour répondre.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant