URL rewriting problème
14 messages
• Page 1 sur 1
Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics
- lebel
- WRInaute discret

- Messages: 85
- Inscription: 7 Avr 2003
URL rewriting problème
1°) URL rewriting:
J'ai des pages sous la forme:
http://xxxx/logiciel.php?logiciel=nomdu ... umero_page
et je voudrais:
http://xxxx/nomdulogiciel/id_logiciel-numero_page.html
Bref, un classique que j'arrive pas à faire.
J'ai essayé çà mais çà plante et je vois pas pourquoi ...
2°) pour le paramètre "nomdulogiciel", je risque d'avoir des caractères spéciaux, du style de ceux qui aiment pas les URL. Comment puis-je les remplacer par des - ?
merci par avance
J'ai des pages sous la forme:
http://xxxx/logiciel.php?logiciel=nomdu ... umero_page
et je voudrais:
http://xxxx/nomdulogiciel/id_logiciel-numero_page.html
Bref, un classique que j'arrive pas à faire.
J'ai essayé çà mais çà plante et je vois pas pourquoi ...
- Code: Tout sélectionner
RewriteRule ^([a-z_0-9]+)\logiciel-([0-9]+)-([0-9]+)\.html$ logiciel.php?logiciel=$1&id=$2&page=$3 [L]
2°) pour le paramètre "nomdulogiciel", je risque d'avoir des caractères spéciaux, du style de ceux qui aiment pas les URL. Comment puis-je les remplacer par des - ?
merci par avance
- nikoshr
- WRInaute occasionnel

- Messages: 320
- Inscription: 10 Juil 2003
1/ A priori
il manquait un / devant logiciel, et, pour simplifier un peu, \w représente les caractères alphanumériques, \d les chiffres
2/ Ca dépend de ce que tu veux et peux faire, mais je dirais que le plus simple et le plus prudent est de normaliser tous les noms de logiciel dans le source HTML et de se tenir à des caractères ASCII.
- Code: Tout sélectionner
RewriteRule ^(\w+)\/logiciel-(\d+)-(\d+)\.html$ logiciel.php?logiciel=$1&id=$2&page=$3 [L]
il manquait un / devant logiciel, et, pour simplifier un peu, \w représente les caractères alphanumériques, \d les chiffres
2/ Ca dépend de ce que tu veux et peux faire, mais je dirais que le plus simple et le plus prudent est de normaliser tous les noms de logiciel dans le source HTML et de se tenir à des caractères ASCII.
- nikoshr
- WRInaute occasionnel

- Messages: 320
- Inscription: 10 Juil 2003
Si tu veux utiliser urlencode, il faut modifier la règle pour qu'elle prenne en compte les % possibles et les espaces codés en tant que + dans le nom du logiciel, soit
et éventuellement ajouter les caractères accentués, cédilles, etc. Je ne suis pas sûr que ca plaise vraiment à Apache ce genre de chose.
- Code: Tout sélectionner
RewriteRule ^([\w\%\+]+)\/logiciel-(\d+)-(\d+)\.html$ logiciel.php?logiciel=$1&id=$2&page=$3 [L]
et éventuellement ajouter les caractères accentués, cédilles, etc. Je ne suis pas sûr que ca plaise vraiment à Apache ce genre de chose.
- lebel
- WRInaute discret

- Messages: 85
- Inscription: 7 Avr 2003
- Code: Tout sélectionner
RewriteRule ^(\w+)\/logiciel-(\d+)-(\d+)\.html$ logiciel.php?logiciel=$1&id=$2&page=$3 [L]
ta proposition marche pas ...
et comment peut-on "normaliser" une chaine en html ?
- nikoshr
- WRInaute occasionnel

- Messages: 320
- Inscription: 10 Juil 2003
D'accord, sur quelle adresse? Et est-ce que les règles se trouvent dans un .htaccess ou dans httpd.conf ?
En HTML, pas possible. Il faut passer par un contrôle externe (PHP, ici, non?)
Ce que j'entends par là, c'est que, plutôt qu'utiliser directement les noms de logiciels, tu utilises un index que tu maîtriseras mieux. Ca peut être une clé primaire de base de données ou une chaîne alphanumérique sans caractères exotiques (e à la place de é par exemple). C'est plus clair ou je n'ai rien compris à la question?
En HTML, pas possible. Il faut passer par un contrôle externe (PHP, ici, non?)
Ce que j'entends par là, c'est que, plutôt qu'utiliser directement les noms de logiciels, tu utilises un index que tu maîtriseras mieux. Ca peut être une clé primaire de base de données ou une chaîne alphanumérique sans caractères exotiques (e à la place de é par exemple). C'est plus clair ou je n'ai rien compris à la question?
- lebel
- WRInaute discret

- Messages: 85
- Inscription: 7 Avr 2003
- Code: Tout sélectionner
RewriteRule ^([a-z_0-9]+)/([0-9]+)-([0-9]+)\.html$ logiciel.php?logiciel=$1&id=$2&page=$3 [L]
CA MARCHE ...
sauf que comme je créée un répertoire virtuel supplémentaire grace à l'URL rewriting, les images et liens qui sont en liens relatifs sont tous faussés ...
Y-a-t'il un moyen de corriger çà rapidement dans le htaccess ?
merci par avance
- nikoshr
- WRInaute occasionnel

- Messages: 320
- Inscription: 10 Juil 2003
lebel a écrit:l'interet de mettre le nom du logiciel en tant que répertoire, c'est pour améliorer le référencement ...
c'est pour çà que je penchais pour un url_encode + ereg_replace des espaces par des - !
t'en pense quoi ?
Content que ca marche. C'est une bonne idée, mais ca veut quand même dire que tous les noms de logiciels doivent être transformés pour constituer une base homogène. On parle de la même chose, monsieur Jourdain.
-

George Abitbol - WRInaute passionné

- Messages: 1923
- Inscription: 6 Juin 2003
lebel a écrit:ereg_replace des espaces par des -
Un str_replace() sera dans ce cas bien suffisant et bien plus rapide qu'une fonction POSIX (fonctions qui déjà sont plus lentes que les fonctions PCRE).
Fred
-

George Abitbol - WRInaute passionné

- Messages: 1923
- Inscription: 6 Juin 2003
Ou [a-z_0-9-] (placé à la fin, le tiret sera pris comme un caractère normal)
Fred
Fred
14 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 :
Consultez la description détaillée des produits ou services de Google suivants : Google goo.gl
- Liste 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. - Transformer des textes non cliquables 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
