Aller au contenu

Sujets conseillés

Posté

Bonjour tout le monde,

J'ai récement appris l'existance de l'url rewriting....je suis en train de le mettre en place sur mon site, mais je bloque sur l'affichage de mes news....qui ne peut codé en dur...

J'ai mes news qui sont dispo ici

/n/news1.php

/n/news2.php

.......

Comment je dois faire le script d'url rewriting pour qu'il m'affiche

/news1.html

/news2.html

Le tout "dynamiquement" si je puis me dire....

Genre si je rajoute une news, j'ai pas besoin d'éditer mon htaccess pour rajouter la ligne qui va bien...

Vous m'avez compris ?

Merci de vos réponses.... :whistling:

Posté

Salut Joker Noir,

C'est très simple, il suffit d'une règle, si toutes tes news sont dans le répertoire "n" :

RewriteEngine on

RewriteRule news([0-9]+)\.html$  n/news$1.php [L]

Par contre, pour éviter les problèmes de liens relatifs non résolus à cause du changement apparent de répertoire, je te suggère d'utiliser la balise <base href="..."> dans les scripts php de news.

Voir les explications dans l'article: Mod_rewrite, ou la réécriture des URL "à la volée"

Dan

Posté

Bouuuuuuh on a changé mon pseudo :mellow:

Bref, merci Dan de ta réponse ;)

De trois trucs que je voudrai eclaircir.....:

([0-9]+) -> toutes les chiffres possibles, c'est bien ça ?

n/news$1.php -> le $1 reprends le nombre que l'on vient de calculer juste avant....?

Ensuite j'ai pas bien cerner ton histoire de lien relatif...... :wacko:

Posté

Salut Joker Noir,

Oui, c'est moi le coupable pour ton pseudo. Comme expliqué dans le message que je t'ai envoyé, on essaye d'éviter la "mode" qui consiste à m3lAnG3r les majuscules/minuscules/chiffres... parce que c'est extrèmement pénible pour ceux qui veulent communiquer avec toi ;)

([0-9]+) veut dire n'importe quelle combinaison d'au moins un chiffre (a cause du signe +)

Et effectivement, le $1 est ce qu'on appelle une "back reference" ou "référence arrière" qui correspond à la première expression entre ( ) dans la première partie.

On peut utiliser de $1 a $9 , ce qui permet pas mal de choses.

Tu as toutes les explications dans l'article sur Mod8rewrite cité plus haut ;), y compris celle sur les "répertoires virtuels".

En deux mots, le fait d'avoir une réécriture ou le répertoire apparent n'est pas le même dans les 2 termes de l'expression crée un répertoire virtuel (fait croire à ton navigateur qu'il est dans un autre répertoire)... donc les liens relatifs ne fonctionneront pas sauf si on utilise la balise <base ...>

Dan

Veuillez vous connecter pour commenter

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



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