Version complète: sur le forum Webmaster Hub : Script de rewriting
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > Scripts et utilitaires
Jok
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.gif
Dan
Salut Joker Noir,

C'est très simple, il suffit d'une règle, si toutes tes news sont dans le répertoire "n" :
CITATION
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
Jok
Bouuuuuuh on a changé mon pseudo mellow.gif
Bref, merci Dan de ta réponse wink.gif

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.gif
Dan
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 wink.gif

([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 wink.gif, 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
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.