Principe URL rewriting

Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics

ruptor
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 18
Inscription: 3 Juin 2008

Principe URL rewriting

Message le Mar Juin 03, 2008 21:01

(HTACCESS)

RewriteEngine On
RewriteRule ^test-1.html$ /glossaire.php?LIST=TEST[L]



Et dans ma page HTML

<a href="glossaire.php?LIST=TEST">TEST</a>

Si je clique sur ce lien, je devrais avoir une page qui s'affiche avec l'adresse test-1.html.... non ?
Ou alors je ne comprends pas bien le rewriting.

Merci de votre aide. Je ne comprends pas bien.


Marie-Aude
Modérateur
Modérateur
 
Messages: 11896
Inscription: 5 Juin 2006

Message le Mar Juin 03, 2008 21:37

Non c'est l'inverse.

L'url rewriting permet de faire comprendre au serveur que test-1.html est la même chose que glossaire.php?list=test

mais l'url de base est toujours valide.

ruptor
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 18
Inscription: 3 Juin 2008

Message le Mar Juin 03, 2008 21:59

Marie-Aude a écrit:Non c'est l'inverse.

L'url rewriting permet de faire comprendre au serveur que test-1.html est la même chose que glossaire.php?list=test

mais l'url de base est toujours valide.


Et si admettons je veux que suivant la variable passer à glossaire, ca me fasse une page glossaire-variable.html .

Comment faut il ecrire ?


YoyoS
WRInaute accro
WRInaute accro
 
Messages: 3835
Inscription: 14 Sep 2006

Message le Mar Juin 03, 2008 23:04

Un truc du genre

RewriteEngine On
RewriteRule ^glossaire-(.*).html$ /glossaire.php?list=$1 [L]

Bonne nuit

Vap
WRInaute passionné
WRInaute passionné
 
Messages: 1090
Inscription: 17 Juin 2007

Message le Mer Juin 04, 2008 8:51

l'URL rewriting est plutot fait pour que les liens visibles à a l'extérieur du site soient simples, par exemple test-1.html, tout en permettant des URL complexes telles que glossaire.php?LIST=TEST à l'intérieur.

Mais si tu tiens a faire l'inverse, il te faut la règle suivante:

Code: Tout sélectionner
RewriteEngine On

RewriteCond %{QUERY_STRING} LIST=(.*)$
RewriteRule glossaire\.php  /glossaire-%1.html [R=301]


Du coup, si tu clique sur un lien glossaire.php?LIST=XXX, ca redirige vers la page glossaire-XXX.html

Mais cette page n'existe probablement pas....

Si tu veux quand même afficher le contenu de glossaire.php?LIST=XXX mais afficher l'adresse en html c'est un peu plus compliqué.


Code: Tout sélectionner
RewriteEngine On

RewriteCond %{QUERY_STRING} ^LIST=(.*)$
RewriteRule glossaire\.php  /glossaire-%1.html [R=301]

RewriteRule glossaire-(.*)\.html /glossaire.php?stop&LIST=$1 [L]


Pas testé (il peut y avoir des typos), mais le principe marche c'est sûr.

ruptor
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 18
Inscription: 3 Juin 2008

Message le Mer Juin 04, 2008 11:41

Vap a écrit:
Si tu veux quand même afficher le contenu de glossaire.php?LIST=XXX mais afficher l'adresse en html c'est un peu plus compliqué.


Code: Tout sélectionner
RewriteEngine On

RewriteCond %{QUERY_STRING} ^LIST=(.*)$
RewriteRule glossaire\.php  /glossaire-%1.html [R=301]

RewriteRule glossaire-(.*)\.html /glossaire.php?stop&LIST=$1 [L]


Pas testé (il peut y avoir des typos), mais le principe marche c'est sûr.


C'est exactement celà que j'aimerais faire mais j'ai testé le code il n'affiche pas de page, pourrais tu corriger le code et m'expliquer les lignes ? :)

Vap
WRInaute passionné
WRInaute passionné
 
Messages: 1090
Inscription: 17 Juin 2007

Message le Mer Juin 04, 2008 20:41

Rien n'indique que le code ne soit pas correct.

Est-ce que si tu entre l'adresse -http://ndd/glossaire.php?LIST=TEST

tu as l'affichage que tu veux? Teste sans aucune règle de réécriture.

ruptor
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 18
Inscription: 3 Juin 2008

Message le Jeu Juin 05, 2008 11:41

Vap a écrit:Rien n'indique que le code ne soit pas correct.

Est-ce que si tu entre l'adresse -http://ndd/glossaire.php?LIST=TEST

tu as l'affichage que tu veux? Teste sans aucune règle de réécriture.


Oui quand je tape ma page elle s'affiche correctement, sauf quand je mets les regles.

Vap
WRInaute passionné
WRInaute passionné
 
Messages: 1090
Inscription: 17 Juin 2007

Message le Jeu Juin 05, 2008 20:12

ruptor a écrit:
Vap a écrit:Rien n'indique que le code ne soit pas correct.

Est-ce que si tu entre l'adresse -http://ndd/glossaire.php?LIST=TEST

tu as l'affichage que tu veux? Teste sans aucune règle de réécriture.


Oui quand je tape ma page elle s'affiche correctement, sauf quand je mets les regles.


OK.

Maintenant, si tu met ca dans le .htaccess, que se passe-t-il si tu entre l'adresse -http://ndd/glossaire-TEST.html ?

Code: Tout sélectionner
RewriteEngine On

RewriteRule glossaire-(.*)\.html /glossaire.php?LIST=$1 [L]


Et si tu entres -http://ndd/glossaire.php?stop&LIST=TEST ?

ruptor
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 18
Inscription: 3 Juin 2008

Message le Jeu Juin 05, 2008 21:41

Vap a écrit:
ruptor a écrit:
Vap a écrit:Rien n'indique que le code ne soit pas correct.

Est-ce que si tu entre l'adresse -http://ndd/glossaire.php?LIST=TEST

tu as l'affichage que tu veux? Teste sans aucune règle de réécriture.


Oui quand je tape ma page elle s'affiche correctement, sauf quand je mets les regles.


OK.

Maintenant, si tu met ca dans le .htaccess, que se passe-t-il si tu entre l'adresse -http://ndd/glossaire-TEST.html ?

Code: Tout sélectionner
RewriteEngine On

RewriteRule glossaire-(.*)\.html /glossaire.php?LIST=$1 [L]



La page glossaire-TEST.html fonctionne
et celle çi glossaire.php?stop&LIST=TEST fonctionne aussi

Ca à l'air d'etre bon alors :) Merci beaucoup je vais approndir celà, peux tu m'expliquer un peu le principe de lal igne et le STOP ?
Et si tu entres -http://ndd/glossaire.php?stop&LIST=TEST ?

Vap
WRInaute passionné
WRInaute passionné
 
Messages: 1090
Inscription: 17 Juin 2007

Message le Ven Juin 06, 2008 9:23

Cette règle:

Code: Tout sélectionner
RewriteCond %{QUERY_STRING} ^LIST=(.*)$
RewriteRule glossaire\.php  /glossaire-%1.html [R=301]


réécrit -http://ndd/glossaire.php?LIST=TEST en -http://ndd/glossaire-TEST.html

Celle ci

Code: Tout sélectionner
RewriteRule glossaire-(.*)\.html /glossaire.php?LIST=$1 [L]


fait la réécriture dans l'autre sens. Elle réécrit -http://ndd/glossaire-TEST.html en -http://ndd/glossaire.php?LIST=TEST

Les deux ensembles vont donc boucler...

En ajoutant stop:

Code: Tout sélectionner
RewriteRule glossaire-(.*)\.html /glossaire.php?stop&LIST=$1 [L]


elle récrit -http://ndd/glossaire-TEST.html en -http://ndd/glossaire.php?stop&LIST=TEST

Du coup la première règle ne va pas se déclencher, car %{QUERY_STRING} commence par stop, et non par LIST=

ruptor
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 18
Inscription: 3 Juin 2008

Message le Ven Juin 06, 2008 11:29

En fait j'ai mis que

RewriteEngine On

RewriteRule glossaire-(.*)\.html /glossaire.php?LIST=$1 [L]

Et ça à l'air de marcher dans les deux sens ?

Vap
WRInaute passionné
WRInaute passionné
 
Messages: 1090
Inscription: 17 Juin 2007

Message le Ven Juin 06, 2008 13:53

Ca larche dans un sens.

Si tu tape l'adresse en PHP, estc-e que tu obtiens l'adresse en html dans la barre de ton navigateur? Non.

Je croyais pourtant que c'est ce que tu voulais.

ruptor
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 18
Inscription: 3 Juin 2008

Message le Ven Juin 06, 2008 18:12

Si je mets
Code: Tout sélectionner
RewriteEngine On
RewriteCond %{QUERY_STRING} ^LIST=(.*)$
RewriteRule glossaire\.php  /glossaire-%1.html [R=301]
RewriteRule glossaire-(.*)\.html /glossaire.php?stop&LIST=$1 [L]


Si je mets glossaire-variable.html, la page reste glossaire-variable.html mais me passe variable dans mon code PHP, donc la c'est bon.

Si je clique sur mon lien glossaire.php?LIST=AAA, il ne m'affiche aucune page et laisse glossaire.php?LIST=AAA

Et au niveau du referecement si on tape : glossaire AAA dans google, ca va marcher ?

Vap
WRInaute passionné
WRInaute passionné
 
Messages: 1090
Inscription: 17 Juin 2007

Message le Ven Juin 06, 2008 19:19

ruptor a écrit:En fait j'ai mis que

RewriteEngine On

RewriteRule glossaire-(.*)\.html /glossaire.php?LIST=$1 [L]

Et ça à l'air de marcher dans les deux sens ?


Si c'est ça qui te convient, laisse comme ça.

Principe URL rewriting

Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Formation recommandée sur ce thème :

Formation URL Rewriting et sites dynamiques : apprenez comment mettre en place la réécriture d'URL, comment optimiser vos URL et profiter de vos pages dynamiques pour booster votre référencement. Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :

Consultez la description détaillée des produits ou services de Google suivants : Google goo.gl

  • Analyse des backlinks
    Cet outil vous permet d'analyser en détails la "popularité" de votre site sur Google. En plus du nombre de liens pris en compte par Google, il calcule le pourcentage de liens internes parmi tous les liens, et il affiche les premières URL trouvées.
  • Recherche de citations d'un site en texte brut
    Cet outil vous permet de trouver des pages citant votre site mais ne faisant pas (encore) de lien. Il suffira parfois d'un simple mail pour transformer cette simple citation en lien (backlink).


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité