Aller au contenu

Sujets conseillés

Posté (modifié)

Salut à tous :cool:

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 :whistling:

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 :P

Modifié par Jam
Posté

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

Posté

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

Posté

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 :unsure:

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 :P

Posté

Ah, si ton programme categorie.php accepte déjà le paramètre categorie=musique, c'est simple !

Tu voudrais quoi comme URL à la place ?

Posté

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/

:hypocrite:

Posté (modifié)

Il te suffit dans ce cas de mettre un simple .htaccess :

Options +FollowSymlinks
RewriteEngine on
RewriteRule ^([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é par Théo B.
Posté (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é par Jam
Posté

Normal, parce que cette règle redirige aussi categorie.php vers... categorie.php :hypocrite:

Il faut la modifier et ajouter un \.html en fin de premier argument.

Dan

Posté

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 :P

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.

Posté

Je comprend bien pour la réécriture d'url.

<?php

if ($_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 ! :P

Posté

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

Posté

Ok, je vais déja fonctionner dans l'ordre :P

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 ?

Posté (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é par Jam
Posté

Il est dans le Dossier /annuaire/

Hum autemp pour moi...

Je ne l'avai pas mis dans le bon dossier :thumbsdown:

Posté

En tout cas, Merci Beaucoup à tous pour vos réponses et pour le temp que vous avez pris pour répondre.

:flower:

Veuillez vous connecter pour commenter

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



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