problème URL rewriting avec un parametre "texte"
15 messages • Page 1 sur 1
Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics
problème URL rewriting avec un parametre "texte"
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.
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é

- Messages: 425
- Inscription: Jeu Juin 17, 2004 9:56
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]
et comme ca ?
- Code: Tout sélectionner
RewriteRule ^cherche1-([^/]*)-([^/]*)-([^/]*)\.html$ /cherche1.php?uslovie=$1&numero_de_page=$2&kol_page=$3 [L]
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
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
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.
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.
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
.
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.
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 ; )
.
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.
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.
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
Regarde les tutos sur WRI, le siteduzero, phpdebutant, phpsources, phpcs...
.
- 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...
.
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.
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.
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
.
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
.
15 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 :
- Tutoriel URL Rewriting
- Suite de l'article sur le fichier .htaccess : l'URL rewriting
- l'URL Rewriting expliqué aux débutants
- Optimiser le référencement d'un forum phpBB : réécriture d'URL
- 3ème partie de l'article .htaccess : les réécritures conditionnelles
- L'URL Rewriting expliqué aux débutants
- Comment éviter les contenus dupliqués (avec/sans le www)
- Référencement d'un forum phpBB
- Le référencement de pages PHP
- Aperçu des différents types de redirection
- 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




le forum