URL Rewriting et PHP

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

mikl194
Nouveau WRInaute
 
Messages: 19
Inscription: Mar Déc 26, 2006 12:40

URL Rewriting et PHP

Message le Mar Déc 26, 2006 16:01

Bonjour à tous,

J'ai URL Rewrité (nouveau verbe! :wink: ) mon site web. Donc j'envois en parametre une variable pour une page php donnée. Ensuite, je crée une deuxième règle de réécriture pour la meme page, et celle ci ne marche pas...

Exemple :

RewriteRule ^index-(.+)\.html$ /index.php?var1=$1 [L]
RewriteRule ^index-(.+)-(.+)\.html$ /index.php?var1=$1&var2=$2 [L]

Est-ce deja possible de créer deux règles pour une meme page php ou il faut obligatoirement créer une deuxième page pour la seconde règle ?


bgdc
WRInaute passionné
WRInaute passionné
 
Messages: 657
Inscription: Lun Mai 23, 2005 20:51

Re: URL Rewriting et PHP

Message le Mar Déc 26, 2006 16:07

mikl194 a écrit:Est-ce deja possible de créer deux règles pour une meme page php ou il faut obligatoirement créer une deuxième page pour la seconde règle ?


Oui c'est possible, et dans ton cas, il faut que inverse tes 2 regles je pense.


dorian53
WRInaute accro
WRInaute accro
 
Messages: 1901
Inscription: Dim Avr 10, 2005 16:56

Message le Mar Déc 26, 2006 16:33

Oui dans ce cas il faut inverser car les règles sont confuses.

Ton 1er .* englobe le tiret de la règle du dessous.


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3326
Inscription: Mar Nov 16, 2004 18:27

Message le Mer Déc 27, 2006 12:50

dorian53 a écrit:Oui dans ce cas il faut inverser car les règles sont confuses.


Confuse... tu voulais dire logique je pense :

Comme une variable peut-être vide, le serveur ne tiens pas compte du nombre d'arguments et pointe sur la première réecriture disponible.

mikl194
Nouveau WRInaute
 
Messages: 19
Inscription: Mar Déc 26, 2006 12:40

Message le Mer Déc 27, 2006 14:14

Oui, c'est ok !! En inversant les variables ca marche nickel !
Merci


Par contre j'avais une autre petite question,
Est-ce qu'il est possible d'envoyé une variable à déja une page réécrite ?

Exemple:

Page réécrite : site-accueil.html
Page réécrite + var : site-accueil.html?var=1

Merci


dorian53
WRInaute accro
WRInaute accro
 
Messages: 1901
Inscription: Dim Avr 10, 2005 16:56

Message le Mer Déc 27, 2006 14:19

KOogar a écrit:
dorian53 a écrit:Oui dans ce cas il faut inverser car les règles sont confuses.


Confuse... tu voulais dire logique je pense :

Comme une variable peut-être vide, le serveur ne tiens pas compte du nombre d'arguments et pointe sur la première réecriture disponible.


Non confuse, la 1ère règle capture tout avant la 2ème (qui est donc inutile dans ce sens).


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3326
Inscription: Mar Nov 16, 2004 18:27

Message le Mer Déc 27, 2006 14:37

Comme une variable peut-être vide, le serveur ne tiens pas compte du nombre d'arguments pour ne pas allouer de la mémoire inutilement et pointe sur la première réecriture disponible.

Cela ne te semble pas logique qu'un serveur cherche à économiser ses ressources ??


La règle :

Dans le fichier .htaccess, il faut placer les redirections en ordre décroissant par nombre d'arguments quand il s'agit du même fichier pointé.



dorian53 a écrit:
KOogar a écrit:
dorian53 a écrit:Oui dans ce cas il faut inverser car les règles sont confuses.


Confuse... tu voulais dire logique je pense :

Comme une variable peut-être vide, le serveur ne tiens pas compte du nombre d'arguments et pointe sur la première réecriture disponible.


Non confuse, la 1ère règle capture tout avant la 2ème (qui est donc inutile dans ce sens).


dorian53
WRInaute accro
WRInaute accro
 
Messages: 1901
Inscription: Dim Avr 10, 2005 16:56

Message le Mer Déc 27, 2006 16:31

KOogar a écrit:La règle :
Dans le fichier .htaccess, il faut placer les redirections en ordre décroissant par nombre d'arguments quand il s'agit du même fichier pointé.

C'est ce qu'on dit depuis le début avec bgdc, regarde son premier post et dis-moi si la règle est respectée... (j'ai rien compris à ton intervention) :roll:

Ces règles sont confuses, car la 1ère n'est pas assez précise, son .* empêche la seconde règle d'exister, s'il aurait pu la faire plus précise (donc moins confuse) pas de soucis.

Exemple, ce cas peut-être juste.
Code: Tout sélectionner
RewriteRule ^index-([0-9]+)\.html$ /index.php?var1=$1 [L]
RewriteRule ^index-(.+)-(.+)\.html$ /index.php?var1=$1&var2=$2 [L]


De tout façon, on est d'accord depuis le début.


bgdc
WRInaute passionné
WRInaute passionné
 
Messages: 657
Inscription: Lun Mai 23, 2005 20:51

Message le Mer Déc 27, 2006 16:53

dorian53 a écrit:(j'ai rien compris à ton intervention) :roll:


Ouf je croyais etre le seul :wink:


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3326
Inscription: Mar Nov 16, 2004 18:27

Message le Mer Déc 27, 2006 18:09

dorian53 a écrit:Exemple, ce cas peut-être juste.
Code: Tout sélectionner
RewriteRule ^index-([0-9]+)\.html$ /index.php?var1=$1 [L]
RewriteRule ^index-(.+)-(.+)\.html$ /index.php?var1=$1&var2=$2 [L]



si tu pointes une url du type :
index-10-20.html
il pointera sur la premiere redirection :
RewriteRule ^index-([0-9]+)\.html$ /index.php?var1=$1 [L]

et ne prendra pas en compte le second argument. Ton code sera mal interpreté.

faite le test :wink:

L'ecriture correct :
Code: Tout sélectionner
RewriteRule ^index-(.+)-(.+)-(.+)-(.+)\.html$ /index.php?var1=$1&var2=$2&var3=$3&var4=$s4 [L]
RewriteRule ^index-(.+)-(.+)-(.+)\.html$ /index.php?var1=$1&var2=$2&var3=$3 [L]
RewriteRule ^index-(.+)-(.+)\.html$ /index.php?var1=$1&var2=$2 [L]
RewriteRule ^index-([0-9]+)\.html$ /index.php?var1=$1 [L]


dorian53
WRInaute accro
WRInaute accro
 
Messages: 1901
Inscription: Dim Avr 10, 2005 16:56

Message le Mer Déc 27, 2006 22:38

KOogar a écrit:si tu pointes une url du type :
index-10-20.html
il pointera sur la premiere redirection :
RewriteRule ^index-([0-9]+)\.html$ /index.php?var1=$1 [L]

et ne prendra pas en compte le second argument. Ton code sera mal interpreté.


Non je ne crois pas, ce masque [0-9] indique des numériques et non pas le tiret.


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3326
Inscription: Mar Nov 16, 2004 18:27

Message le Jeu Déc 28, 2006 10:24

La règle reste la même quelque soit les REGEXs.
Tu l'as trouve confuse car tu ne l'as pas comprise.
Allume ton serveur et fait des tests STP. Merci.

Enjoy life ;- )
KOogar


dorian53
WRInaute accro
WRInaute accro
 
Messages: 1901
Inscription: Dim Avr 10, 2005 16:56

Message le Jeu Déc 28, 2006 10:48

KOogar a écrit:La règle reste la même quelque soit les REGEXs.
Tu l'as trouve confuse car tu ne l'as pas comprise.
Allume ton serveur et fait des tests STP. Merci.

Enjoy life ;- )
KOogar

KOogar a écrit:si tu pointes une url du type :
index-10-20.html
il pointera sur la premiere redirection :
RewriteRule ^index-([0-9]+)\.html$ /index.php?var1=$1 [L]

et ne prendra pas en compte le second argument. Ton code sera mal interpreté.

Si ce qui tu mets là fonctionne, explique-moi comment tu fais s'il te plait ?
Sinon, je crois qu'il te manque un tiret...


dorian53 a écrit:Non je ne crois pas, ce masque [0-9] indique des numériques et non pas le tiret.

Avec ça [0-9-] c'est mieux.

mikl194
Nouveau WRInaute
 
Messages: 19
Inscription: Mar Déc 26, 2006 12:40

Message le Jeu Déc 28, 2006 11:43

Ca part dans tous les sens la ! Vous énervez pas les gars !

Donc je le disais, confus ou pas, ca marche tres bien comme ca :

RewriteRule ^index-(.+)-(.+)\.html$ /index.php?var1=$1&var2=$2 [L]
RewriteRule ^index-(.+)\.html$ /index.php?var1=$1 [L]


Par contre j'avais une autre petite question,
Est-ce qu'il est possible d'envoyé une variable à déja une page réécrite ?

Exemple:

Page réécrite : site-accueil.html
Page réécrite + var : site-accueil.html?var=1


Et, le [0-9] marche, peut etre mieux comme ca le [0-9-], mais en meme temps qu'est-ce qui est mieux entre quelque chose qui marche et quelque chose qui marche ?

Par contre le tiret entre le 0 et le 9 n'a rien à voir avec celui de la barre d'adresse, c'est simplement pour lui signaler que c'est du numérique...


dorian53
WRInaute accro
WRInaute accro
 
Messages: 1901
Inscription: Dim Avr 10, 2005 16:56

Message le Jeu Déc 28, 2006 11:52

mikl194 a écrit:Ca part dans tous les sens la ! Vous énervez pas les gars !

Moi j'suis Zen et j'emploie le conditionnel plus haut, au cas où, hein on sait jamais (...) Voir...


mikl194 a écrit:Donc je le disais, confus ou pas, ca marche tres bien comme ca :

RewriteRule ^index-(.+)-(.+)\.html$ /index.php?var1=$1&var2=$2 [L]
RewriteRule ^index-(.+)\.html$ /index.php?var1=$1 [L]

Evidement que ça marche :) Voir...


mikl194 a écrit:Et, le [0-9] marche, peut etre mieux comme ca le [0-9-], mais en meme temps qu'est-ce qui est mieux entre quelque chose qui marche et quelque chose qui marche ?

Le plus optimisé, le plus performant.

mikl194 a écrit:Par contre le tiret entre le 0 et le 9 n'a rien à voir avec celui de la barre d'adresse, c'est simplement pour lui signaler que c'est du numérique...

Tout à fait ! Toi tu as compris. Voir...

mikl194 a écrit:Par contre j'avais une autre petite question,
Est-ce qu'il est possible d'envoyé une variable à déja une page réécrite ?

Tu ne mets pas [L] à la fin de ta règle pour continuer la ré-écriture.

URL Rewriting et PHP

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 :

  • Analyse de popularité
    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.
  • Transformer des simples citations de votre site en liens
    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 0 invités


cron