détection des variables vides
10 messages
• Page 1 sur 1
Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics
- Gaulois
- Nouveau WRInaute

- Messages: 34
- Inscription: 20 Aoû 2009
détection des variables vides
Bonjour
J'ai une adresse de ce style :
J'utilise le rewriting pour mettre mon adresse ce cette forme :
Mais il peut arriver que mon adresse se retrouve avec une variable vide(var1, var2 ou var3)
Je souhaiterais donc détecter si les variables sont vides et donc ne pas écrire les variables vides.
Je voudrais éviter de réécrire toutes les possiblilités
Comment puis je faire?
Merci de vos réponses
edit: titre changé
J'ai une adresse de ce style :
- Code: Tout sélectionner
url.php?var1=coucou&var2=hello&var3=bye
J'utilise le rewriting pour mettre mon adresse ce cette forme :
- Code: Tout sélectionner
url-coucou-hello-bye.php
Mais il peut arriver que mon adresse se retrouve avec une variable vide(var1, var2 ou var3)
Je souhaiterais donc détecter si les variables sont vides et donc ne pas écrire les variables vides.
Je voudrais éviter de réécrire toutes les possiblilités
- Code: Tout sélectionner
RewriteEngine on=
RewriteRule url-(.+)-(.+).php$ url.php?var1=$1&var2=$2 [QSA]
RewriteRule url-(.+)-(.+).php$ url.php?var2=$2&var3=$3 [QSA]
RewriteRule url-(.+)-(.+)-(.+).php$ url.php?var1=$1&var2=$2&var3=$3 [QSA]
....
Comment puis je faire?
Merci de vos réponses
edit: titre changé
Dernière édition par Gaulois le Jeu Oct 01, 2009 16:12, édité 2 fois.
-

cedric_g - WRInaute accro

- Messages: 3552
- Inscription: 18 Jan 2006
Re: problème RewriteCond %{QUERY_STRING}
Euh comment peux-tu savoir si quand tu as 2 valeurs, la seconde correspond à var2 ou var3 ?
Tu ne peux pas ! Il faut utiliser un autre système. Une seule variable (par ex. "url-var1+var2+var3" ou "url,var1-var2-var3") où la valeur correspond à la chaîne de caractères qui suit le premier séparateur. Puis ensuite traiter cette chaîne (typiquement avec un split si tu utilises PHP) au niveau de ton code.
Tu ne peux pas ! Il faut utiliser un autre système. Une seule variable (par ex. "url-var1+var2+var3" ou "url,var1-var2-var3") où la valeur correspond à la chaîne de caractères qui suit le premier séparateur. Puis ensuite traiter cette chaîne (typiquement avec un split si tu utilises PHP) au niveau de ton code.
- Gaulois
- Nouveau WRInaute

- Messages: 34
- Inscription: 20 Aoû 2009
Re: détection des variables vides
C'est à dire, je ne comprends pas.
Tu me dis que le rewriting ne permet pas de détecter si c'est une variable plutôt qu'une autre?
je ne peux pas utiliser du php puisque je suis dans le htaccess. Sinon çà me simplifierait beaucoup la vie
Tu me dis que le rewriting ne permet pas de détecter si c'est une variable plutôt qu'une autre?
je ne peux pas utiliser du php puisque je suis dans le htaccess. Sinon çà me simplifierait beaucoup la vie
-

cedric_g - WRInaute accro

- Messages: 3552
- Inscription: 18 Jan 2006
Re: détection des variables vides
Ben si tu réécris tes pages comme tu l'as décrit, tu peux donc avoir :
url-var1-var2-var3.php
url-var1-var2.php
url-var1-var3.php
url-var2-var3.php
On est d'accord ?
Arrivé là, comment fais-tu pour savoir que la première c'est var1 ou var 2 ? Et que la deuxième c'est var2 ou var 3 ? Ben tu peux pas
Tu ferais donc mieux d'avoir des URL réécrites ainsi :
url,var1-var2-var3-var4-var5-var6-var7-var8.php (je prends un cas totalement tordu exprès, avec énormément de combinaisons)
Dans ton script PHP, ta variable aura donc la valeur texte "var1-var2-var3-var4-var5-var6-var7-var8". Sur cette valeur, il te suffira de faire un "split" (voir la fonction PHP) pour retrouver tes valeurs dans un tableau !
C'est assez simple non ?
url-var1-var2-var3.php
url-var1-var2.php
url-var1-var3.php
url-var2-var3.php
On est d'accord ?
Arrivé là, comment fais-tu pour savoir que la première c'est var1 ou var 2 ? Et que la deuxième c'est var2 ou var 3 ? Ben tu peux pas
Tu ferais donc mieux d'avoir des URL réécrites ainsi :
url,var1-var2-var3-var4-var5-var6-var7-var8.php (je prends un cas totalement tordu exprès, avec énormément de combinaisons)
Dans ton script PHP, ta variable aura donc la valeur texte "var1-var2-var3-var4-var5-var6-var7-var8". Sur cette valeur, il te suffira de faire un "split" (voir la fonction PHP) pour retrouver tes valeurs dans un tableau !
C'est assez simple non ?
-

nickargall - WRInaute accro

- Messages: 6468
- Inscription: 13 Juin 2005
Re: détection des variables vides
Ou alors passer par une autre URL pour y joindre des sortes de "clé" qui pourront te permettre de voir si les paramètres sont passés :
/url-1,coucou-2,hello-3,bye.php
si il en manque une, "hello" par exemple, ca donnera
/url-1,coucou-2,-3,bye.php
et donc
RewriteRule url-1,(.+)-2,(.+)-3,(.+).php$ url.php?var1=$1&var2=$2&var3=$3 [QSA]
c'est un peu moins "sexy" côté URL mais je suis pas sur que les internautes Lambda soient très attentifs à ça.
/url-1,coucou-2,hello-3,bye.php
si il en manque une, "hello" par exemple, ca donnera
/url-1,coucou-2,-3,bye.php
et donc
RewriteRule url-1,(.+)-2,(.+)-3,(.+).php$ url.php?var1=$1&var2=$2&var3=$3 [QSA]
c'est un peu moins "sexy" côté URL mais je suis pas sur que les internautes Lambda soient très attentifs à ça.
- Gaulois
- Nouveau WRInaute

- Messages: 34
- Inscription: 20 Aoû 2009
Re: détection des variables vides
@cedric_g
Je pensais que l'url writing état plus intelligent que cela et qu'il arrivait à retenir les variables qu'il avait modifié.
Je suis d'accord avec toi pour le split malgré que je trouve étrange d'en faire pour récupérer des variables passées en GET.
Mais imagine que var3 et var5 soit vide, l'url deviendrait alors
Ce qui n'est donc pas vraiment très joli du point de vue de l'url.
@nickargall
Ton idée est intéressante mais comme tu le dis ce n'est pas très joli.
Je vais donc essayer de trouver pour l'instant une autre solution
Je pensais que l'url writing état plus intelligent que cela et qu'il arrivait à retenir les variables qu'il avait modifié.
Je suis d'accord avec toi pour le split malgré que je trouve étrange d'en faire pour récupérer des variables passées en GET.
Mais imagine que var3 et var5 soit vide, l'url deviendrait alors
- Code: Tout sélectionner
url,var1-var2--var4--var6-var7-var8.php
Ce qui n'est donc pas vraiment très joli du point de vue de l'url.
@nickargall
Ton idée est intéressante mais comme tu le dis ce n'est pas très joli.
Je vais donc essayer de trouver pour l'instant une autre solution
- Gaulois
- Nouveau WRInaute

- Messages: 34
- Inscription: 20 Aoû 2009
Re: détection des variables vides
A défaut de pouvoir détecter dans la RewriteRule la bonne variable, ne serait il pas possible de détecter quels sont les variables dans l'url. C'est à dire s'il a var1 var2 ou var3 avec RewriteCond %{QUERY_STRING}.
par exemple
Je ne suis pas sur que cela marche et de la syntaxe.
N'hésitez pas à me corriger sur la syntaxe.
par exemple
- Code: Tout sélectionner
RewriteCond %{QUERY_STRING} var1
RewriteCond %{QUERY_STRING} var2
RewriteRule url-(.+)-(.+).php$ url.php?var1=$1&var2=$2 [QSA]
ou
RewriteCond %{QUERY_STRING} var1
RewriteCond %{QUERY_STRING} var3
RewriteRule url-(.+)-(.+).php$ url.php?var1=$1&var3=$2 [QSA]
Je ne suis pas sur que cela marche et de la syntaxe.
N'hésitez pas à me corriger sur la syntaxe.
-

nickargall - WRInaute accro

- Messages: 6468
- Inscription: 13 Juin 2005
Re: détection des variables vides
Ecoute, au lieu de faire des Ups, fais des tests et regarde si ça marche, non ? 
10 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 :
- Souci de variables vides etc...
- Pages vides pénalisées ?
- mots vides et title ??
- SPIP et éléments vides
- Beaucoup (trop?) de pages vides
- Que faire des pages dynamiques vides?
- selection de champs non vides en sql
- Google desindexe-t-il les pages vides ?
- URL Rewriting, mots vides et référencement
- [phpMySQL] - Ecarter les colonnes vides
- Algorithme de détection du link spam de masse - 09-11-2005
- Nombre moyen de mots par requête : statistiques AOL Août 2006 - 10-08-2006
- Nombre de clics dans les pages de résultats : statistiques AOL Août 2006 - 11-08-2006
- Articles de R et D sur le PageRank, le SpamRank et le spam... - 09-12-2005
- API Google Analytics : segments avancés, objectifs, variables personnalisées - 15-12-2009
- Le référencement de pages PHP - 04-08-2008
- Référencement : le problème des sessions des pages PHP - 04-08-2008
- Prise en compte de la mise en page HTML par les moteurs de recherche - 15-03-2008
- Détection de pages similaires
Cet outil vous permet de calculer la similarité entre 2 pages web. L'algorithme utilisé repose sur l'analyse des occurrences des mots (mais pas sur leur positionnement dans les pages). Google utilise cette notion à certains endroits dans son algorithme, mais de façon bien plus évoluée que ce petit outil... Avoir des pages trop similaires peut entraîner des problèmes d'indexation... Cet outil vous permettra peut-être de résoudre certains problèmes de contenus dupliqués. - Test de lien (type de redirection)
Cet outil vous permet de tester la validité d'un lien pour le référencement. Il vous indique la nature du lien (lien en dur, redirection bien gérée par les moteurs ou redirection mal gérée par les moteurs).
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités
