problème URL rewriting avec un parametre "texte"

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

Yulia
Nouveau WRInaute
 
Messages: 6
Inscription: Ven Juil 21, 2006 15:32

problème URL rewriting avec un parametre "texte"

Message le Ven Juil 21, 2006 17:06

Bonjour,

Je voudrais réécrire URL où un des parametres est le texte (l'instruction pour MySQL). Et ça ne marche pas.:(

Dans .htaccess:

RewriteRule ^cherche1-(text)-([0-9]+)-([0-9]+)\.html$ cherche1.php?uslovie=$1&numero_de_page=$2&kol_page=$3 [L]

Dans le fichier .php je change

<a href='./cherche1.php?uslovie=$uslovie&numero_de_page=$sled&kol_page=$kol_page' target='_self'><b><i><font size='-1' color='#01202a'>Suivante</font></i></b></a></div>

en

<a href='./cherche1-$uslovie-$sled-$kol_page.html' target='_self'><b><i><font size='-1' color='#01202a'>Suivante</font></i></b></a></div>

où $uslovie - l'instruction pour MySQL
$sled - le numéro de la page suivante
$kol_page - le nombre des pages

La reponse est:

Forbidden

You don't have permission to access /femmes_resultat/cherche1- filles, connaissance_langues, niveau_de_langue WHERE age>=18 AND age<=70 AND taille>=0 AND taille<=176 AND id_poids>=0 AND id_poids<=101 AND couleur_yeux>=0 AND couleur_yeux<=100 AND couleur_cheveux>=0 AND couleur_cheveux<=100 AND taille_p>=0 AND taille_p<=176 AND taille_t>=0 AND taille_t<=176 AND taille_h>=0 AND taille_h<=176 AND si_a_enf>=0 AND si_a_enf<=3 AND id_educ>=0 AND id_educ<=100 AND id_ville>=0 AND id_ville<=10000 AND id_sit_fam>=0 AND id_sit_fam<=4 AND id_pays>=0 AND id_pays<=10000 AND connaissance_langues.id_langue>=0 AND connaissance_langues.id_langue<=100 AND filles.id_fille=niveau_de_langue.id_fille AND connaissance_langues.id_langue=niveau_de_langue.id_langue AND filles.id_fille>2000 ORDER BY filles.age-2-16.html on this server.

Est-ce que c'est possible de garder l'instruction pour MySQL comme je l'ai fait?

Avec des parametres simple ça marche (par example, je n'ai pas de problèmes avec
RewriteRule ^voir_page-([0-9]+)\.html$ voir_page.php?id_fille=$1 [L]
et appele de fichier voir_page.php ce trouve dans le même fichier que cherche1.php)

Pouviez-vous m'aider, s'il vous plait?
Merci en avance.

Yulia.

magic corp.
WRInaute impliqué
WRInaute impliqué
 
Messages: 425
Inscription: Jeu Juin 17, 2004 9:56

Message le Ven Juil 21, 2006 18:38

Et avec ça :
Code: Tout sélectionner
RewriteRule ^cherche1-(.+)-([0-9]+)-([0-9]+)\.html$ cherche1.php?uslovie=$1&numero_de_page=$2&kol_page=$3 [L]

Yulia
Nouveau WRInaute
 
Messages: 6
Inscription: Ven Juil 21, 2006 15:32

Message le Sam Juil 22, 2006 0:00

Pareil. :( Toujours "Forbidden".

Yulia.


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3338
Inscription: Mar Nov 16, 2004 18:27

Message le Sam Juil 22, 2006 16:34

et comme ca ?

Code: Tout sélectionner
RewriteRule ^cherche1-([^/]*)-([^/]*)-([^/]*)\.html$    /cherche1.php?uslovie=$1&numero_de_page=$2&kol_page=$3 [L]

Yulia
Nouveau WRInaute
 
Messages: 6
Inscription: Ven Juil 21, 2006 15:32

Message le Sam Juil 22, 2006 18:03

Toujours pas.:(
Est-ce que ça peut être à cause d'espaces?


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3338
Inscription: Mar Nov 16, 2004 18:27

Message le Sam Juil 22, 2006 18:44

Possible, ou certain caracteres ne passent peut etre pas ;)

http://www.php.net/manual/fr/function.urlencode.php
http://www.php.net/manual/fr/function.urldecode.php

Pour les espaces, tu peux utiliser str_replace() pour les enlever
http://www.php.net/manual/fr/function.str-replace.php

jvgamers
WRInaute discret
WRInaute discret
 
Messages: 77
Inscription: Mar Juil 13, 2004 1:09

Message le Dim Juil 23, 2006 10:51

Je me permet quand même de sortir de la question...

Où est l'intérêt du rewriting ici ? Vu l'immensité de l'url, elle sera détestée par google, quoi qu'il se passe. Autre chose, si le site est en prod et que tu éxécutes la requête présente dans l'url, tu prend des risques énormes. :|


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3338
Inscription: Mar Nov 16, 2004 18:27

Message le Lun Juil 24, 2006 19:30

jvgamers a écrit:Je me permet quand même de sortir de la question...

Où est l'intérêt du rewriting ici ? Vu l'immensité de l'url, elle sera détestée par google, quoi qu'il se passe. Autre chose, si le site est en prod et que tu éxécutes la requête présente dans l'url, tu prend des risques énormes. :|


Tu n'a pas tord sur 1 point. Il est préférable de passer maximum 2 paramètres dans l'url. Celle de Yulia en a 3.
De la à prendre des 'risques énormes', il faut relativiser. J'ai des urls bien plus longue que la sienne qui sont trés bien indexés :wink:

.

jvgamers
WRInaute discret
WRInaute discret
 
Messages: 77
Inscription: Mar Juil 13, 2004 1:09

Message le Mar Juil 25, 2006 3:07

Le risque énorme ne vient pas de la longueur de l'url, ça c'est juste un motif de mauvaise indexation. Le risque vient du fait de passer en paramétre une requête mysql... Suffit de modifier l'url et on peut bidouiller facilement la base de donnée.


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3338
Inscription: Mar Nov 16, 2004 18:27

Message le Mar Juil 25, 2006 3:37

jvgamers a écrit:Le risque énorme ne vient pas de la longueur de l'url, ça c'est juste un motif de mauvaise indexation. Le risque vient du fait de passer en paramétre une requête mysql... Suffit de modifier l'url et on peut bidouiller facilement la base de donnée.


+1

mouuarff, j'avais pas vu ; ) Je l'avais encore jamais vu celle la, pas etonnant que ca beug !!!

Dit Yulia, va faire un petit tour sur www.siteduzero.com , quelque lecons de base me semble indispensable à ton niveau.

Bon courage ; )

.

Yulia
Nouveau WRInaute
 
Messages: 6
Inscription: Ven Juil 21, 2006 15:32

Message le Mar Juil 25, 2006 11:28

Merci pour vos reponses.
Vous avez raison, je n'ai pas pensé à la sécurité. Merci pour cette reflection.
Merci aussi pour www.siteduzero.com, j'ai fait un petit tour, mais leur example d'affichage des pages est plus simple de ce dont j'ai besoin.:(
Si dans mon URL je supprime la requête MySQL, mais je garde les données des paramétres (genre http://... cherche1-18-70-0-176-0-101-...-10-16.html ), est-ce que ce sera mieux?
Autrement, je n'arrive pas à comprendre comment passer les paramétres de la requête (qui changent de requête en requête) de page en page.:(

Yulia.


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3338
Inscription: Mar Nov 16, 2004 18:27

Message le Mar Juil 25, 2006 13:01

Je me permet d'insister, mais il te manque les notions de base en PHP/MySQL. Les paramètres des pages passent par la methode GET et c'est la LIMIT de la requete SQL qui détermine la page à ouvrir

Code: Tout sélectionner
$page = isset($_GET['page']) ? $_GET['page'] : '';

$limit_str = "LIMIT ". $page * $limit .",$limit";
$result = mysql_query("
                      SELECT * 
                      FROM table 
                      ORDER BY id 
                      ASC $limit_str");


Regarde les tutos sur WRI, le siteduzero, phpdebutant, phpsources, phpcs...

.

Yulia
Nouveau WRInaute
 
Messages: 6
Inscription: Ven Juil 21, 2006 15:32

Message le Mar Juil 25, 2006 13:26

Je comprends ce que vous voulez dire, mais dans votre example il y a seulement un paramètre (page) qui est passé. Vous choisissez tous les données de la table. Dans ma requête MySQL je dois passer la condition (WHERE) avec beaucoup de paramètres!
Example
SELECT ... FROM ... WHERE age>=$age_recu_min AND age<=$age_recu_max AND
taille>=$taille_recu_min AND taille<=$taille_recu_max AND
id_poids>=$poids_recu_min AND id_poids<=$poids_recu_max AND
couleur_yeux>=$couleur_yeux_min AND couleur_yeux<=$couleur_yeux_max AND
couleur_cheveux>=$couleur_cheveux_min AND
...
...
AND
... ORDER BY ...

Et tous ces paramètres sont variables de requêtes en requêtes. Ce n'est pas LIMIT qui pose des problèmes, mais comment garder la condition (WHERE) de pages en pages?

P.S. C'est possible qu'il me manque les notions de base en PHP/MySQL: j'ai appris seule avec des livres, mais c'est pour ça que je pose des questions.:)


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3338
Inscription: Mar Nov 16, 2004 18:27

Message le Mar Juil 25, 2006 14:34

Pourquoi veux tu passer la requete entière ? ne passe que les variables qui te sont neccessaires dans ton URL ;)

regarde cet exemple :
-http://www.ame-soeur.info/recherche-0-France-21-23-1-0-80.html
=> sexe feminin de France, entre 21 et 23 ans, de 80 à 100



Donc pour toi ton url sera du genre :

cherche1.php?age_recu_min=$age_recu_min&age_recu_max=$age_recu_max&taille_recu_min=$taille_recu_min&poids_recu_min=$poids_recu_min&taille_recu_max&$taille_recu_max...

Et tu n'as pas vraiment le choix ;)

.

Yulia
Nouveau WRInaute
 
Messages: 6
Inscription: Ven Juil 21, 2006 15:32

Message le Mar Juil 25, 2006 14:43

Merci.:)


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 :

  • Analyse des backlinks
    Cet outil vous permet d'analyser en détails la "popularité" de votre site sur Google. En plus du nombre de liens pris en compte par Google, il calcule le pourcentage de liens internes parmi tous les liens, et il affiche les premières URL trouvées.
  • Recherche de citations d'un site en texte brut
    Cet outil vous permet de trouver des pages citant votre site mais ne faisant pas (encore) de lien. Il suffira parfois d'un simple mail pour transformer cette simple citation en lien (backlink).


Qui est en ligne

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