|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |
|
Membre éprouvé
![]() Aurélien GéritsDéveloppeur Web Inscription : mai 2006 Messages : 1 045 ![]() |
Bonsoir, j'ai un fichier htaccess pour la gestion des directives de réécriture.
J'utilise une URL qui contient un paramètre de date formatée (2011/03/02) La réécriture fonctionne mais n'est pas correct car il considère la fin de la date pour un autre paramètre dans cette même réécriture. Je souhaite forcer la date dans l'url ![]() Voici un exemple d'URL : Citation:
Code :
RewriteRule ^(actualites|news|nieuws)[/]([/0-9]+)[/]([-_0-9a-zA-Z]+)[/]([0-9a-zA-Z]+)/{0,1}$ /news.php?getdate=$2&uri_get_news=$3&getnews=$4 [QSA,L]
Par quelque chose comme : Code :
(actualites|news|nieuws)[/]([/0-9]+){4}[/]([/0-9]+){2}[/]([/0-9]+){2}/
__________________
Au petit déjeuner, je prend du PHP et au souper du jQuery.AFUP 2009 : Bien optimiser son code pour le référencement Mon projet open source de librairie PHP 5: magix cjquery |
|
|
00
|
|
|
#2 |
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
C'est inutilement complexe, de ce que je comprends :
Code :
RewriteRule ^(?:actualites|news|nieuws)/(\d{4}/\d{2}/\d{2})/([-_0-9a-zA-Z]+)/([0-9a-zA-Z]+)/?$ /news.php?getdate=$1&uri_get_news=$2&getnews=$3 [QSA,L]
|
|
|
00
|
|
|
#3 |
|
Membre éprouvé
![]() Aurélien GéritsDéveloppeur Web Inscription : mai 2006 Messages : 1 045 ![]() |
Bonjour Julp
J'ai une question que fait cette partie ? :
__________________
Au petit déjeuner, je prend du PHP et au souper du jQuery.AFUP 2009 : Bien optimiser son code pour le référencement Mon projet open source de librairie PHP 5: magix cjquery |
|
00
|
|
|
#4 |
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
(?: ... ) : c'est une parenthèse non capturante (donc pas de mémorisation, pas de variable associée). $1 désigne dès lors la partie date et non actualites|news|nieuws dont visiblement vous n'aviez pas besoin.
|
|
|
00
|
|
|
#5 |
|
Membre éprouvé
![]() Aurélien GéritsDéveloppeur Web Inscription : mai 2006 Messages : 1 045 ![]() |
Donc si je comprend bien je n'est nul besoin de la partie petites-annonces
mais si j'ai utilisé $2 c'est parce qu'au début de mon fichier je charge la langue : Code :
RewriteRule ^(fr|en|nl|de {1,3}/(.*) /$2?getLanguage=$1 [QSA,L]
Code :
RewriteRule ^(petites-annonces|small-ads|zoekertjes|anzeigen)/([/0-9]+)-([-0-9a-zA-Z]+)/{0,1}$ /smallads.php?getid_sect_adds=$2§_link_adds=$3 [QSA,L]
Code :
RewriteRule ^(?:petites-annonces|small-ads|zoekertjes|anzeigen)/([/0-9]+)-([-0-9a-zA-Z]+)/{0,1}$ /smallads.php?getid_sect_adds=$2§_link_adds=$3 [QSA,L]
__________________
Au petit déjeuner, je prend du PHP et au souper du jQuery.AFUP 2009 : Bien optimiser son code pour le référencement Mon projet open source de librairie PHP 5: magix cjquery |
|
00
|
|
|
#6 |
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
J'ai du mal à suivre.
Dans la première [celles avec les langues] (qui est syntaxiquement fausse), il faut des parenthèses capturantes puisque vous souhaitez réutiliser cette partie. Dans la seconde, si la partie petites-annonces|small-ads|zoekertjes|anzeigen n'est pas utilisée (ce qui est visiblement le cas), une parenthèse capturante n'est pas nécessaire. Par contre, si vous en utilisez une non-capturante, il ne faut pas oublier de décrémenter vos variables ($1 : fait alors référence à ce qui est capturé par ([/0-9]+) ; $2 à ([-0-9a-zA-Z]+)). Après, vous gérez ça comme vous voulez. Les parenthèses non-capturantes ne sont pas "obligatoires" (c'est juste plus "propre" et ça permet éventuellement de ne pas atteindre inutilement la limite des 9 captures). |
|
|
00
|
|
|
#7 |
|
Membre éprouvé
![]() Aurélien GéritsDéveloppeur Web Inscription : mai 2006 Messages : 1 045 ![]() |
Que dois je modifier dans:
Code :
RewriteRule ^(fr|en|nl|de){1,3}/(.*) /$2?getLanguage=$1 [QSA,L]
Ceci est-il plus cohérent : Code :
RewriteRule ^(?:petites-annonces|small-ads|zoekertjes|anzeigen)/([/0-9]+)-([-0-9a-zA-Z]+)/{0,1}$ /smallads.php?getid_sect_adds=$1§_link_adds=$2 [QSA,L]
Code :
(?:petites-annonces|small-ads|zoekertjes|anzeigen)
__________________
Au petit déjeuner, je prend du PHP et au souper du jQuery.AFUP 2009 : Bien optimiser son code pour le référencement Mon projet open source de librairie PHP 5: magix cjquery |
|
00
|
|
|
#8 | ||||
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Citation:
Citation:
Citation:
Citation:
|
||||
|
|
00
|
|
|
#9 | |
|
Membre éprouvé
![]() Aurélien GéritsDéveloppeur Web Inscription : mai 2006 Messages : 1 045 ![]() |
Citation:
C'est vrai qu'au lieu de sa : Je suppose qu'un truc comme sa est plus flexible : Si bien sur je me suis pas planté sur la règle {1,3}, je dois absolument ne permettre que maximum 3 lettres en début d'url
__________________
Au petit déjeuner, je prend du PHP et au souper du jQuery.AFUP 2009 : Bien optimiser son code pour le référencement Mon projet open source de librairie PHP 5: magix cjquery |
|
|
00
|
|
|
#10 |
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Non, absolument pas. Vous devriez (re)prendre un tutoriel sur les expressions régulières et/ou tester.
{1,3} : 1 à 3 fois ce qui précède. Or ce qui précède, c'est la chaîne 'fr' ou 'nl' ou 'en' ou 'de' (du fait du groupement via la parenthèse). Donc en l'état, vous avez correspondance avec des chaînes comme frfr, enfren, deenfr, etc. (bien que vous ne voyez/capturez que la dernière) Idem pour ([a-zA-Z]+){1,3} : ça ne désigne pas "une à trois lettres" non plus. ([a-zA-Z]{1,3}) oui. |
|
|
00
|
|
|
#11 |
|
Membre éprouvé
![]() Aurélien GéritsDéveloppeur Web Inscription : mai 2006 Messages : 1 045 ![]() |
Effectivement c'est beaucoup mieux.
C'est tout même difficile de savoir que la réécriture était incorrect sauf après réflexion (vu que pas d'erreur). C'est vrai que la je me suis bien planté avec les expressions régulières. Je vais devoir lire le sujet en profondeur pour corriger mes expressions régulières et décortiqué avant l'ajout des règles prochaines.Grand merci Julp
__________________
Au petit déjeuner, je prend du PHP et au souper du jQuery.AFUP 2009 : Bien optimiser son code pour le référencement Mon projet open source de librairie PHP 5: magix cjquery |
|
00
|
Copyright © 2000-2012 - www.developpez.com