détection des variables vides

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

Gaulois
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 34
Inscription: 20 Aoû 2009

détection des variables vides

Message le Jeu Oct 01, 2009 15:42

Bonjour

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
WRInaute accro
 
Messages: 3552
Inscription: 18 Jan 2006

Re: problème RewriteCond %{QUERY_STRING}

Message le Jeu Oct 01, 2009 15:57

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.

Gaulois
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 34
Inscription: 20 Aoû 2009

Re: détection des variables vides

Message le Jeu Oct 01, 2009 16:19

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 :wink:


cedric_g
WRInaute accro
WRInaute accro
 
Messages: 3552
Inscription: 18 Jan 2006

Re: détection des variables vides

Message le Jeu Oct 01, 2009 20:58

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 ?


nickargall
WRInaute accro
WRInaute accro
 
Messages: 6468
Inscription: 13 Juin 2005

Re: détection des variables vides

Message le Ven Oct 02, 2009 9:32

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.

Gaulois
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 34
Inscription: 20 Aoû 2009

Re: détection des variables vides

Message le Ven Oct 02, 2009 10:52

@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
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
Nouveau WRInaute
 
Messages: 34
Inscription: 20 Aoû 2009

Re: détection des variables vides

Message le Ven Oct 02, 2009 16:18

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
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.

Gaulois
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 34
Inscription: 20 Aoû 2009

Re: détection des variables vides

Message le Lun Oct 05, 2009 14:05

up

Merci de vos réponses


nickargall
WRInaute accro
WRInaute accro
 
Messages: 6468
Inscription: 13 Juin 2005

Re: détection des variables vides

Message le Lun Oct 05, 2009 14:30

Ecoute, au lieu de faire des Ups, fais des tests et regarde si ça marche, non ? :mrgreen:

Gaulois
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 34
Inscription: 20 Aoû 2009

Re: détection des variables vides

Message le Lun Oct 05, 2009 15:01

je ne ferais pas des up si cela marchait ;)

Tu peux sans doute m'expliquer comment marche RewriteCond %{QUERY_STRING}.
Impossible de faire marche une seule rewriting avec çà.


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

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 :

  • 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