8792 sujets

Développement web côté serveur, CMS

bonjour a tous je voudrais de l'aide pour le L'URL Rewriting :

voila je suis cher OVH et je suis un tuto sur L'URL Rewriting
mon souci et que ca marche mais pas comme je voudrais je vous explique

jai un dossier test
dedans :


index.html
test.php & .htaccess

le fichier index contien : <a href="test.php">Cliquer ICI</a>

le fichier test.php : <p>TEST OK !</p>

et le htaccess :
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^test\.html$  /test/test.php [L]


si dans mon navigateur je tape ladresse test.php il m'affiche le contenu de ma page si je tape test.html pas de souci non plus mais pk quand depuis la page index.html je clique sur le lien il maffiche test.php et non pas test.html ?

pk il transforme pas L'url ?

Merci D'avance !
Modifié par Viva (11 Jan 2007 - 10:37)
salut.

C'est pas comme ca que cela fonctionne Smiley smile

dans ton lien tu dois avoir : test.html et non test.php

Le principe de l'URL rewriting est de donner une pseudo url, et c'est apache que va traduire cette pseudo url pour renvoyer le contenu de la vrai URL visée.

en lui donnant le lien test.php, le navigateur demande test.php. Du coup, Apache renvoie test.php car aucune régle de réécriture s'applique.
Non pas dans les liens, tu devras faire tes liens <a href="test.html">...</a>

**edit, trop tard Smiley cligne
Modifié par Dadou (11 Jan 2007 - 09:13)
echo '<li class=""><a href="pages/categorie-'.$ligne['idCategorie'].'.html">'.$ligne['nomCategorie'].'</a></li>';

comme ca ??
Viva a écrit :
echo '<li class=""><a href="pages/categorie-'.$ligne['idCategorie'].'.html">'.$ligne['nomCategorie'].'</a></li>';

comme ca ??


en gros oui c'est ca.
à toi apres de créer les bonnes règles de réécriture en fonction de tes liens...
heux juste encore une question si je fait :

echo '<li class=""><a href="pages/categorie-'.$ligne['idCategorie'].'.html">'.$ligne['nomCategorie'].'</a></li>'

je pense pas que ca marche car jurais plus le lien du genre

categorie.php?idCategorie=5

comme la page n'existera pas ca marchera pas ?
Viva a écrit :
... je pense pas que ca marche car jurais plus le lien du genre...

Tu as testé ?
Avec une règle de réécriture correcte, il n'y a pas de raison que ça ne fonctionne pas.
Mais pour ça... faut se plonger dans les regex !
Smiley langue
A partir du moment où tu utilises de l'url rewriting, tu peux mettre n'importe quoi dans tes url de liens.

L'important est que le fichier htaccess contienne tous les réécritures correspondant à tous tes types de liens.
Administrateur
Viva a écrit :
je peut foutre du PHP dans le htaccess ?

Hello,

Pourquoi employer un terme aussi grossier ? Nous sommes entre êtres civilisés ici Smiley cligne
Viva a écrit :
je peut foutre du PHP dans le htaccess ?

Je penses qu'il y a assez de tutos sur l'url rewrite que pour te faire une bonne idée du "comment", du "pourquoi" et du "parce que".

Franchement je ne trouve pas que tu fasses beaucoup d'efforts pour t'impliquer dans ton sujet.
Voilà un lien :
URL Rewrite

Il y en a d'autres... google est ton ami !
Modifié par Bison (11 Jan 2007 - 15:57)
Viva a écrit :
d'accord mais alors par ex dans une de mes page du genre:

www.monsite.com/pages/test.php?id=5

comment faire le lien sur mon site si je veut rediriger en :

www.monsite.com/pages/test-5.html


Dans le fichier .htaccess, tu insères la règle suivante (avec des expressions régulières):

Options +FollowSymlinks
RewriteEngine On
RewriteRule ^([a-z]+)-([0-9]+)\.html$ /pages/$1.php?id=$2


^ et $ matérialisent respectivement le début et la fin de la chaîne de caractères, ([a-z]+) signifie tout caractère minuscule de a à z avec une ou plusieurs occurrences, ([0-9]+) signifie la même chose pour tout chiffre de 0 à 9, l'antislash permet de protéger par échappement le point (sinon, ça signifierait n'importe quel caractère), les $1 et $2 renvoient aux expressions régulières de l'URL réécrite.

Avec cette règle, ce qui marche pour une page www.monsite.com/pages/test-5.html marchera également pour une page www.monsite.com/pages/a-12684.html