Paramètres optionnels?
7 messages • Page 1 sur 1
Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics
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.
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
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 ?
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
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]
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 :
- The Technology Behind Google
- Nouveau format d'URL des referrers Google
- Article sur le fichier .htaccess
- Gérer les comptes et profils Google Analytics
- API Blogger : Google Data API
- Google Calendar API
- Liste d'erreurs classiques de duplicate content
- L'underscore bientôt un séparateur de mots pour Google ?
- link rel=canonical pour réduire les contenus dupliqués
- Gestion des langues et des sessions en PHP / MySQL
- Parametres optionnels dans l'URL
- disparition de parametres
- Paramètres GET
- paramètres ASP
- Paramètres id
- Parametres GET ?
- paramètres et liens
- URL et Paramètres
- Url avec paramètres
- paramètres perdus en rewriting
- Paramètres et url rewriting
- Beaucoup (trop) de parametres
- R=301 et paramètres d'url
- RewriteRule avec paramètres
- Paramètres des Url's
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





le forum