Paramètres optionnels?
7 messages
• Page 1 sur 1
Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics
- r.mike
- Nouveau WRInaute

- Messages: 44
- Inscription: 7 Oct 2005
Paramètres optionnels?
Commencons par le commencement :
Bonjour ...
Bon, je suis néophyte de l'url rewriting, j'arrive juste à bidouiller à partir de conditions existantes, mais je me trouve face à quelque chose qui me semble simple dans la logique mais compliqué quand on y connait pas grand chose.
En fait j'ai un site basé sur une structure de page principale : -structure.php
Ensuite j'y insère des includes pour les différents contenus :
-listing.php pour les listing de produits par catégorie(2 variables nécessaire, la catégorie, le numéro de la page à afficher)
-produit.php pour l'affichage d'une fiche produit (3 variables, la catégorie, la page et le produit)
J'utilise donc :
Donc pour l'affichage d'une catégorie, je lui indique par exemple:
listing_2_3_.html (include listing, catégorie 2, page 3)
et pour un produit :
produit_2_3_6.html (include produit, catégorie 2, page 3, produit 6)
Je passe toujours mes paramètres dans le même ordre :
J'aurai donc voulu qu'il soit tous optionnels, c'est à dire pouvoir écrire par exemple :
listing_2.html ou listing_2_3. html sans tenir compte des paramètres inutiles pour cette page.
J'arriverai à le bidouiller en plusieurs lignes genre :
Mais ca ne me parait pas très propre, et j'aimerai autant prodfiter de cette occasion pour apprendre qq chose.
J'espère m'être exprimé correctement ...
Merci d'avance.
Bonjour ...
Bon, je suis néophyte de l'url rewriting, j'arrive juste à bidouiller à partir de conditions existantes, mais je me trouve face à quelque chose qui me semble simple dans la logique mais compliqué quand on y connait pas grand chose.
En fait j'ai un site basé sur une structure de page principale : -structure.php
Ensuite j'y insère des includes pour les différents contenus :
-listing.php pour les listing de produits par catégorie(2 variables nécessaire, la catégorie, le numéro de la page à afficher)
-produit.php pour l'affichage d'une fiche produit (3 variables, la catégorie, la page et le produit)
J'utilise donc :
- Code: Tout sélectionner
RewriteRule ^(.*)_(.*)_(.*)_(.*)\.(.*)$ structure.php?include=$1&categorie=$2&page=$3&produit=$4 [L]
Donc pour l'affichage d'une catégorie, je lui indique par exemple:
listing_2_3_.html (include listing, catégorie 2, page 3)
et pour un produit :
produit_2_3_6.html (include produit, catégorie 2, page 3, produit 6)
Je passe toujours mes paramètres dans le même ordre :
J'aurai donc voulu qu'il soit tous optionnels, c'est à dire pouvoir écrire par exemple :
listing_2.html ou listing_2_3. html sans tenir compte des paramètres inutiles pour cette page.
J'arriverai à le bidouiller en plusieurs lignes genre :
- Code: Tout sélectionner
RewriteRule ^(.*)_(.*)_(.*)_(.*)\.(.*)$ structure.php?include=$1&categorie=$2&page=$3&produit=$4 [L]
RewriteRule ^(.*)_(.*)_(.*)\.(.*)$ structure.php?include=$1&categorie=$2&page=$3 [L]
RewriteRule ^(.*)_(.*)\.(.*)$ structure.php?include=$1&categorie=$2 [L]
etc...
Mais ca ne me parait pas très propre, et j'aimerai autant prodfiter de cette occasion pour apprendre qq chose.
J'espère m'être exprimé correctement ...
Merci d'avance.
-

1000apps - WRInaute discret

- Messages: 122
- Inscription: 18 Mai 2004
Je ne sais pas si on peut bidouiller des conditions dans le .htaccess
Mais sinon tu peux peut être passer des paramètres 'vides" avec un caractère spécial par exemple ici 0:
listing_2_3_0.html (include listing, catégorie 2, page 3, pas de produit)
Listing_2_0_0.html (include listing, categorie 2, pas de page, pas de produit)
Listing_0_2_0.html (include listing, pas de categorie, page 2, pas de produit)
même principe pour les produits
rem: il parait qu'il vaut mieux mettre des" -" plutot que des" _" dans les urls, voir articles sur ce sujet sur Webrankinfo
A+
Pierre
Mais sinon tu peux peut être passer des paramètres 'vides" avec un caractère spécial par exemple ici 0:
listing_2_3_0.html (include listing, catégorie 2, page 3, pas de produit)
Listing_2_0_0.html (include listing, categorie 2, pas de page, pas de produit)
Listing_0_2_0.html (include listing, pas de categorie, page 2, pas de produit)
même principe pour les produits
rem: il parait qu'il vaut mieux mettre des" -" plutot que des" _" dans les urls, voir articles sur ce sujet sur Webrankinfo
A+
Pierre
- r.mike
- Nouveau WRInaute

- Messages: 44
- Inscription: 7 Oct 2005
oui je suis d'accord, mais ca reviens au même que ne rien mettre comme je le fais actuellement :listing_2_3_.html (listing_2_3_(3°paramètre).html)
Mais dans le cas présent, cette possibilité me rendrait service, même si elle est contournable.
Pour le séparateur, je ne sais pas trop car sur ce forum certains disent que le "-" n'est pas pris en compte par certains moteurs comme msn il me semble. Alors qui croire et que choisir ?
Mais dans le cas présent, cette possibilité me rendrait service, même si elle est contournable.
Pour le séparateur, je ne sais pas trop car sur ce forum certains disent que le "-" n'est pas pris en compte par certains moteurs comme msn il me semble. Alors qui croire et que choisir ?
- r.mike
- Nouveau WRInaute

- Messages: 44
- Inscription: 7 Oct 2005
Re: Paramètres optionnels?
Bon en fait j'ai trouvé une solution :
Je ne pense qu'il dois y avoir plus simple, mais ca marche,
Je peux appeler : listing_2.htm ou listing_2_3.htm ou produit_2_3_6.htm et ca marche
- Code: Tout sélectionner
RewriteRule ^([^_]*)[_]*([^_]*)[_]*([^_]*)[_]*([^_]*)\.(.*)$ structure.php?include=$1&categorie=$2&page=$3&produit=$4 [L]
Je ne pense qu'il dois y avoir plus simple, mais ca marche,
Je peux appeler : listing_2.htm ou listing_2_3.htm ou produit_2_3_6.htm et ca marche
-

correiaj - WRInaute passionné

- Messages: 1110
- Inscription: 25 Avr 2005
voila un beau code:
RewriteRule /([a-z]+)_([0-9]+)_([0-9]+)_([0-9]+)\.html /structure.php?include=$1&categorie=$2&page=$3&produit=$4 [L,NC]
RewriteRule /([a-z]+)_([0-9]+)_([0-9]+)\.html /structure.php?include=$1&categorie=$2&page=$3 [L,NC]
RewriteRule /([a-z]+)_([0-9]+)\.html /structure.php?include=$1&categorie=$2 [L,NC]
RewriteRule /([a-z]+)_([0-9]+)_([0-9]+)_([0-9]+)\.html /structure.php?include=$1&categorie=$2&page=$3&produit=$4 [L,NC]
RewriteRule /([a-z]+)_([0-9]+)_([0-9]+)\.html /structure.php?include=$1&categorie=$2&page=$3 [L,NC]
RewriteRule /([a-z]+)_([0-9]+)\.html /structure.php?include=$1&categorie=$2 [L,NC]
- r.mike
- Nouveau WRInaute

- Messages: 44
- Inscription: 7 Oct 2005
Bon suite aux conseils de 1000apps et aux explications contenues dans certains topic, j'ai pu voir que :
1) le "_" n'est pas une bonne solution car pas considéré comme un séparateur de mot
2) le "-" pose des problèmes de référencement avec certains moteurs s'il est utilisé plusieurs fois dans une seule chaine.
La solution est donc de virer les "_" et de mettre un seul "-" (ou éventuellement "_", je l'ai autorisé dans le code), j'ai donc gratté un peu pour faire ca (je le met au cas ou ca pourrait dépanner qqn d'autre.
On peut balancer le nombre de variables qu'on veut dans l'ordre qu'on veut :
index.html
renverra
structure.php?include=index
listing-cat6page5a1b2c3.htm
renverra
structure.php?include=listing&cat=6&page=5&a=1&b=2&c=3
Seules contraintes:
- les noms de variables ne peuvent être que [a-z] (aucun chiffre ou caractère spécial)
- les variables ne peuvent être que numériques
PS : je me surprend moi même à avoir fait ce bout de code qui fonctionne, mais rassurez moi y'a aucune coquille ou autre liée à cette méthode ???
1) le "_" n'est pas une bonne solution car pas considéré comme un séparateur de mot
2) le "-" pose des problèmes de référencement avec certains moteurs s'il est utilisé plusieurs fois dans une seule chaine.
La solution est donc de virer les "_" et de mettre un seul "-" (ou éventuellement "_", je l'ai autorisé dans le code), j'ai donc gratté un peu pour faire ca (je le met au cas ou ca pourrait dépanner qqn d'autre.
- Code: Tout sélectionner
RewriteRule ([^_-]+)([_-]+)([a-z]+)([0-9]+)([^&]*)(.*).(htm|html) $1$2$5$6&$3=$4.$7 [NC,N]
RewriteRule ^([^_-]+)([_-]+)(.*).(htm|html)$ structure.php?include=$1$3 [NC,L]
On peut balancer le nombre de variables qu'on veut dans l'ordre qu'on veut :
index.html
renverra
structure.php?include=index
listing-cat6page5a1b2c3.htm
renverra
structure.php?include=listing&cat=6&page=5&a=1&b=2&c=3
Seules contraintes:
- les noms de variables ne peuvent être que [a-z] (aucun chiffre ou caractère spécial)
- les variables ne peuvent être que numériques
PS : je me surprend moi même à avoir fait ce bout de code qui fonctionne, mais rassurez moi y'a aucune coquille ou autre liée à cette méthode ???
7 messages
• Page 1 sur 1
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 :
- Gérer ses paramètres de tracking dans Google Webmaster Tools
- Tutoriel sur le sitemap Google pour les images
- Le contenu dupliqué : impact et solutions pour le référencement
- L'extension Firefox OptimizeGoogle pour le référencement
- Actualité du référencement pendant l'été 2009
- La balise d'URL canonique : pour réduire les contenus dupliqués
- Liste complète des paramètres utilisés par Google Search (variables dans l'URL)
- Liste d'erreurs classiques de duplicate content + solutions !
Consultez la description détaillée des produits ou services de Google suivants : Google Alerts
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités
