nombreuses questions concernant l'URL Rewriting

  • Auteur de la discussion Auteur de la discussion NoWayHome
  • Date de début Date de début
WRInaute discret
Bonjour , j'ai parcouru l'article et le forum et j'ai néamoins quelques questions .

Introduction

Mon site est entierement dynamique , utilisation d'un script de galerie .
Mes pages sont donc de la sorte :

displayimage.php?album=64&pos=5
thumbnails.php?album=topn&cat=0&page=56


Questions

1- j'ai bien compris qu'en utilisant l'url rewriting , l'adresse dans ma barre d'adresse sera selon l'architecture que je souhaite .
Cependant , mes liens sur les pages dynamiques , vont t'ils rester sous l'ancienne forme ?
Si oui , une modification ne m'entrainerait t'elle pas dans une modification du code source du script ?

2- Etant un site d'image , je souhaite remplacer

displayimage.php?album=64&pos=5

par

nom-de-la-galerie-image-5

Ce qui ferrais autant de ligne que d'album .

Et avec un site assez important je peux me retrouver avec un fichier htacces de plusieurs centaines de lignes .

N'est ce pas trop ?

Comment palier à ce probleme ?

Merci .
 
WRInaute accro
1) il faut modifier les liens dans le code source
2) un htacess peut gerer un site entier en une seule ligne
album est ta variable $1 et pos $2. une règle suffit

voilou :)
 
WRInaute discret
Oui mais pour chaque numéro de galerie j'y donne un nom different .

Je doit donc avoir autant de ligne que de nom voulu .

exemple :

displayimage.php?album=64&pos=5

deviendra

la-foret-image-5

et

displayimage.php?album=112&pos=1

deviendra

la-neige-image-1

je ne vois pas comment tout mettre en une seule ligne .

Pour ce qui est de la re-écriture du code source , euhh .. si je fait ça , j'ai plus besoin de faire de l'url rewriting non ? car j'implemente directement mes nouvelles fonctions non ??

Une idée ?

j'utilise coppermine galerie
 
WRInaute accro
non, car tu definis une variable que tu n'utilises pas :

exemple :
RewriteRule ^galerie-([0-9]+)-(.+).html$ /index.php?gestion=gallerie&id_gallerie=$1 [L]

dans ma varible $2, je met ce que je veux, c est pas pris en compte dans le rewrite

-> galerie-1-totoalecole.html ou galerie-1-alleloeme.html seront redirigées par cette regle, "j'ignore" une variable de ma règle. c'est le meme principe pour toi
 
WRInaute accro
L'URL Rewriting, ce n'est pas un module qui te permet d'avoir de belles URL, c'est une fonctionnalité qui permet au serveur d'interpréter des urls "propres" comme des urls "à variables", en se basant sur des règles prédéfinies...

En gros, tu dis à ton serveur que si quelqu'un tape "/foo/bar.html" il doit l'interpréter comme "index.php?a=foo&b=bar".

Bien évidemment, celà t'oblige à revoir le code du site pour que les liens générés par le script ne soient plus
Code:
<a href="index.php?a=foo&b=bar">bar dans foo</a>
mais
Code:
<a href="/foo/bar.html">bar dans foo</a>
.
 
WRInaute discret
e-kiwi a dit:
non, car tu definis une variable que tu n'utilises pas :

exemple :
RewriteRule ^galerie-([0-9]+)-(.+).html$ /index.php?gestion=gallerie&id_gallerie=$1 [L]

dans ma varible $2, je met ce que je veux, c est pas pris en compte dans le rewrite

-> galerie-1-totoalecole.html ou galerie-1-alleloeme.html seront redirigées par cette regle, "j'ignore" une variable de ma règle. c'est le meme principe pour toi

J'ai du mal a saison e-kiwi .

Car moi j'ai par exemple 130 gallerie qui sont referencé par des numéros .
Comment le rewrite ou non rewrite en l'occurence pourrait deviner le nom de ma galerie ?
 
WRInaute accro
>> Comment le rewrite ou non rewrite en l'occurence
>> pourrait deviner le nom de ma galerie ?

parceque dans ton url tu passes la clé 'ici : album=64 et pos=5. ensuite tu fais une requete dans ta BDD pour afficher le nom.
et pour créer le lien, pareil, tu va voir dans ta BDD de nom de ta galerie, et tu le rajoute dans le lien, apres tes clés

>> J'ai du mal a saison
ca ira mieux en été ? :)
 
WRInaute occasionnel
Je dirais que tu as deux possibilité
La simple :
Code:
displayimage.php?album=64&pos=5
deviendra
Code:
la-foret-image-64-5.html
et
Code:
displayimage.php?album=112&pos=1
deviendra
Code:
la-neige-image-112-1.html
avec une regle style
Code:
RewriteRule ^.*-([0-9]+)-([0-9]+)\.html$ /displayimage.php?album=$1&pos=$2 [L]
-----------------------------------------------------------------------------
Ou la version ... plus prise de tête ...
Code:
displayimage.php?album=64&pos=5
deviendra
Code:
la-foret-image-5.html
et
Code:
displayimage.php?album=112&pos=1
deviendra
Code:
la-neige-image-1.html
avec une regle style
Code:
RewriteRule ^(.*)-([0-9]+)\.html$ /displayimage.php?album=$1&pos=$2 [L]
Mais là tu aurra "la-foret-image" ou "la-neige-image" comme valeur pour ta variable album et après tu doit dans ton script recherché dans ta base de donnée quelque est l'ID de l'abum en fonction de son nom.
 
Discussions similaires
Haut