URL rewriting avec texte
7 messages
• Page 1 sur 1
Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics
-

LE Guitou - Nouveau WRInaute

- Messages: 12
- Inscription: 2 Sep 2009
URL rewriting avec texte
Bonjour,
J’ai eu beau suivre les différentes explications, posts… mais je n’arrive pas à m’en sortir.
Je voudrais donc rajouter du texte dans mes url. Celui-ci reprendra le titre des news avec donc : du texte majuscule, minuscule et chiffre.
L’url rewriting avec juste l’ID marche correctement, mais dès que je veux mettre mon texte je n’y arrive pas.
Exemple qui fonctionne juste avec l’id :
- Lien page php : <a href="news-'.$data["id"].'.html">
- htaccess : RewriteRule ^news-([0-9]+)\.html$ /index.php?page=contenu_news&id_news=$1 [L]
Exemple que je voudrais mettre en place :
- Lien page php : <a href="news-'.$data["id"].'-'.$data["titre_formate"].'.html">
- htaccess : RewriteRule ^news-([0-9]+)-([a-zA-Z0-9\-]*)\.html$ /index.php?page=contenu_news&id_news=$1&titre=$2 [L]
L’erreur retournée : HTTP 404. Impossible de trouver le fichier.
Quelqu’un pourrait m’aider svp ?
Merci par avance.
J’ai eu beau suivre les différentes explications, posts… mais je n’arrive pas à m’en sortir.
Je voudrais donc rajouter du texte dans mes url. Celui-ci reprendra le titre des news avec donc : du texte majuscule, minuscule et chiffre.
L’url rewriting avec juste l’ID marche correctement, mais dès que je veux mettre mon texte je n’y arrive pas.
Exemple qui fonctionne juste avec l’id :
- Lien page php : <a href="news-'.$data["id"].'.html">
- htaccess : RewriteRule ^news-([0-9]+)\.html$ /index.php?page=contenu_news&id_news=$1 [L]
Exemple que je voudrais mettre en place :
- Lien page php : <a href="news-'.$data["id"].'-'.$data["titre_formate"].'.html">
- htaccess : RewriteRule ^news-([0-9]+)-([a-zA-Z0-9\-]*)\.html$ /index.php?page=contenu_news&id_news=$1&titre=$2 [L]
L’erreur retournée : HTTP 404. Impossible de trouver le fichier.
Quelqu’un pourrait m’aider svp ?
Merci par avance.
-

milkiway - WRInaute accro

- Messages: 4910
- Inscription: 3 Fév 2004
Re: URL rewriting avec texte
Essaie :
- Code: Tout sélectionner
RewriteRule ^news-([0-9]+)-(.*).html$ /index.php?page=contenu_news&id_news=$1&titre=$2 [L]
-

LE Guitou - Nouveau WRInaute

- Messages: 12
- Inscription: 2 Sep 2009
Re: URL rewriting avec texte
seebz a écrit:j'vais peut-être dire un c*nnerie mais essaye en mettant le tiret en premier : [-a-zA-Z0-9]
J'avais déjà testé, j'ai retesté mais ça ne veut toujours pas. ^^'
milkiway a écrit:Essaie :
- Code: Tout sélectionner
RewriteRule ^news-([0-9]+)-(.*).html$ /index.php?page=contenu_news&id_news=$1&titre=$2 [L]
Ce genre de chose ne laisse pas la porte ouverte a du hack de site ? (possibilité de mettre http://...)
Edit : En effet le (.*) fonctionne très bien mais niveau sécurité cela n'est pas une faille ?
- jcaron
- WRInaute accro

- Messages: 2687
- Inscription: 13 Fév 2004
Re: URL rewriting avec texte
Si tu valides et/ou escapes correctement les paramètres qui te sont passés (ce que tu devrais faire de toutes façons), ça ne devrait pas poser de problème.
Si [-a-zA-Z0-9]* ne convient pas, c'est que tu dois avoir d'autres caractères dans ton titre, non?
Jacques.
Si [-a-zA-Z0-9]* ne convient pas, c'est que tu dois avoir d'autres caractères dans ton titre, non?
Jacques.
-

milkiway - WRInaute accro

- Messages: 4910
- Inscription: 3 Fév 2004
Re: URL rewriting avec texte
Peux-tu en dire plus à ce sujet stp?jcaron a écrit:Si tu valides et/ou escapes correctement les paramètres qui te sont passés (ce que tu devrais faire de toutes façons), ça ne devrait pas poser de problème.
Jacques.
Merci
- jcaron
- WRInaute accro

- Messages: 2687
- Inscription: 13 Fév 2004
Re: URL rewriting avec texte
Ben si tu utilises des données que tu reçois tu client (via $_GET, $_POST, $_COOKIE et une bonne partie de $_SERVER, etc.), tu ne dois jamais leur faire confiance (même si tu as de la validation JS côté client, même si tu penses que ce sont des données issues d'un formulaire donc tu as fourni toutes les valeurs...).
Ce type de données ne doit donc jamais être utilisé sans validation ou escaping:
- dans une requête SQL
- dans la composition d'un nom de fichier
- dans un appel "system" ou équivalent
- dans un eval
- dans un preg_replace (ou équivalent) avec un flag e
etc.
Sinon tu ouvres la porte à une "injection".
De la même façon, tu ne dois jamais réafficher ces données telles quelles (directement ou après stockage en base SQL), sinon tu ouvres la porte à du cross-site scripting.
Exemple d'injection SQL:
- tu fais une requête "SELECT * from table WHERE id=".$_GET['id']." AND password='".$_GET['password']."'"
- si l'utilisateur passe comme valeur de id "22 OR true OR true" la requête est vraie dans tous les cas, et l'utilisateur peut rentrer même sans connaître de password.
- il faut donc soit valider ce que tu as reçu (vérifier que id n'est bien qu'un nombre et rien d'autre dans le cas présent, et que password ne contient que les caractères autorisés), soit "escaper" les données reçues (avec mysql_real_escape_string)
Note qu'il y a nettement pire comme injection SQL: on peut sans problème effacer toute ta base par exemple.
Jacques.
Ce type de données ne doit donc jamais être utilisé sans validation ou escaping:
- dans une requête SQL
- dans la composition d'un nom de fichier
- dans un appel "system" ou équivalent
- dans un eval
- dans un preg_replace (ou équivalent) avec un flag e
etc.
Sinon tu ouvres la porte à une "injection".
De la même façon, tu ne dois jamais réafficher ces données telles quelles (directement ou après stockage en base SQL), sinon tu ouvres la porte à du cross-site scripting.
Exemple d'injection SQL:
- tu fais une requête "SELECT * from table WHERE id=".$_GET['id']." AND password='".$_GET['password']."'"
- si l'utilisateur passe comme valeur de id "22 OR true OR true" la requête est vraie dans tous les cas, et l'utilisateur peut rentrer même sans connaître de password.
- il faut donc soit valider ce que tu as reçu (vérifier que id n'est bien qu'un nombre et rien d'autre dans le cas présent, et que password ne contient que les caractères autorisés), soit "escaper" les données reçues (avec mysql_real_escape_string)
Note qu'il y a nettement pire comme injection SQL: on peut sans problème effacer toute ta base par exemple.
Jacques.
7 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 :
- URL Rewriting : règle de rewriting qui change selon la cat ?
- Gestion de la page par défaut, multingue, url Rewriting, url friendly
- URL Rewriting... Mais la nouvelle URL apparait dans la barre d'adresse
- url rewriting: modification d'un dossier dans une url + l'extension
- Changement url rewriting, anciennes url dans le resultat de la recherche
- nettoyer des URL de la base Google apres url rewriting
- Supprimer de google mes anciennes URL (après URL rewriting)
- URL rewriting url avec parametres vers autre url avec param
- après url rewriting, éviter doublon avec url par variable
- délai entre url rewriting et référencement des nouvelles url
Consultez la description détaillée des produits ou services de Google suivants : Google goo.gl
- Calcul du nombre de 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. - Transformer des citations en liens
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

