Tiret dans mes $_GET et tiret comme séparateur => probleme :/

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

ghostya
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 18
Inscription: 8 Déc 2011

Tiret dans mes $_GET et tiret comme séparateur => probleme :/

Message le Mer Déc 14, 2011 10:18

Bonjour,

Je me retrouve bien dans une grosse cata que je n'ai pas pu anticipé car j'étais pourtant sur de mon coup.

En fait j'ai une url avec 2 parametres: $_GET['cat'] et $_GET['page'].
Ces deux parametres peuvent contenir des lettres,chiffres et tirets.

Le problème est que j'ai choisi aussi comme séparateur d'url le caractère tiret (-).

Donc quand je charge une url du type:

www.monsite.com/categorie-1-page-2.html

Et bien il me dit que mon $_GET['cat'] vaut "categorie" alors qu'il devrait récupérer "categorie-1".

Ma règle est la suivante (je la mets si ça peut aider à trouver mon probleme):

Code: Tout sélectionner
RewriteRule ([0-9a-zA-Z-]+)-([0-9a-zA-Z-]+).html /cat=$2&page=$3


Merci d'avance,
J'espere que ce n'est pas trop compliqué :?


jeanluc
WRInaute accro
WRInaute accro
 
Messages: 3062
Inscription: 3 Mai 2004

Re: Tiret dans mes $_GET et tiret comme séparateur => probleme :/

Message le Mer Déc 14, 2011 10:52

Bonjour,

Il ne faut pas demander l'impossible. Si ton URL peut être /chapeau-blanc-bonnet.html, je ne vois pas comment Apache pourrait deviner que tu veux dire "chapeau blanc" + "bonnet" plutôt que "chapeau" + "blanc bonnet".

Jean-Luc

ghostya
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 18
Inscription: 8 Déc 2011

Re: Tiret dans mes $_GET et tiret comme séparateur => probleme :/

Message le Mer Déc 14, 2011 11:09

Bonjour,

Ah bon c'est bien ce qui me semblait.

Mais bon pas évident de ne pas demander l'impossible quand on entend sur ce forum que le signe "," n'est pas bien pris en compte lors d'un partage avec le bouton partager de facebook, que le signe + est compté comme un espace, que le "_" ne permet pas de séparer deux mots pour Google... etc etc.

Que faire dans mon cas ? Quel séparateur utiliser ?

Merci encore


spout
WRInaute accro
WRInaute accro
 
Messages: 4382
Inscription: 14 Mai 2003

Re: Tiret dans mes $_GET et tiret comme séparateur => probleme :/

Message le Mer Déc 14, 2011 11:10

Sauf s'il l'avait fait en PHP, explode() + test sur le type de variable.

ghostya
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 18
Inscription: 8 Déc 2011

Re: Tiret dans mes $_GET et tiret comme séparateur => probleme :/

Message le Mer Déc 14, 2011 11:15

Test sur le type de variable ? Il s'agit de deux string comprenant donc chiffres,lettres et tirets...
Je développe bien en PHP mais je ne comprends pas ce que tu veux dire ?

Sinon quel séparateur choisir à part le tiret ?

Merci pour ta réponse ^^


spout
WRInaute accro
WRInaute accro
 
Messages: 4382
Inscription: 14 Mai 2003

Re: Tiret dans mes $_GET et tiret comme séparateur => probleme :/

Message le Mer Déc 14, 2011 11:30

S'il y a tjs 4 paramètres, il n'y a pas besoin de tester le type:

-http://example.com/index.php?url=categorie-1-page-2
Code: Tout sélectionner

<?php 
list($cat, $catId, $page, $pageId) = explode('-', $_GET['url']);
echo "$cat $catId $page $pageId";
?>

Il y a moyen de faire bcp plus flexible qu'avec le rewrite de cette façon, et surtout, avec 1 seule règle de rewrite:
http://forum.webrankinfo.com/pratique-htaccess-lire-avant-poser-t13288 ... l#p1217718

ghostya
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 18
Inscription: 8 Déc 2011

Re: Tiret dans mes $_GET et tiret comme séparateur => probleme :/

Message le Mer Déc 14, 2011 11:40

Non tu ne m'as pas compris en fait ^^ Je vois ce que tu veux dire mais ce n'est pas aussi simple.

Ma premiere variable $_GET peut très bien valoir ceci: "categorie-1-6-3" et mon autre variable pareil.

Bon ce n'est pas grave je pense que je vais malheureusement devoir utiliser un autre séparateur comme l'underscore.

Merci encore à tous^^


zeb
WRInaute accro
WRInaute accro
 
Messages: 4569
Inscription: 5 Déc 2004

Re: Tiret dans mes $_GET et tiret comme séparateur => probleme :/

Message le Mer Déc 14, 2011 12:49

d'un autre côté un truc du genre devrais faire la farce (dans l'esprit)

RewriteRule ([a-zA-Z-]{1,100}-[0-9]{1,4})-([a-zA-Z-]{1,100}-[0-9]{1,4}).html /cat=$2&page=$3

je connais pas l'usage du "+" les{x,y} permettent de fixer un certains nombre d’occurrences possible


spout
WRInaute accro
WRInaute accro
 
Messages: 4382
Inscription: 14 Mai 2003

Re: Tiret dans mes $_GET et tiret comme séparateur => probleme :/

Message le Mer Déc 14, 2011 13:10

Oui OK sorry j'avais pas fait attention :)

Alors fait un mix des 2 avec slashes et tirets et la méthode de rewrite avec 1 seul paramètre GET (ou QUERY_STRING ou PATH_INFO)


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 :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités