Formation par Olivier Duffez

Formation au référencement par Olivier Duffez, créateur de WebRankInfo !
Une formule efficace alliant théorie et pratique, avec une haute disponibilité des intervenants
Cette formule a déjà convaincu plusieurs centaines d'entreprises, pourquoi pas vous ?
Réservez vite votre place en ligne (convention possible pour imputer sur le budget formation)

Formation référencement Marseille

URL Rewriting avec titres textuels

Poster un nouveau sujet Imprimer cette discussion    Forum -> URL Rewriting et .htaccess   Les dernières discussions de ce forum sont disponibles au format RSS
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 
dljarod
Nouveau WRInaute

Inscrit le: 22 Jan 2008
Messages: 7
Localisation: Liège, Belgique

URL permanente de ce messagePosté le : Mar Jan 22, 2008 15:00    Sujet du message: URL Rewriting avec titres textuels

Bonjour à tous,

Je me lance dans l'URL rewriting. J'ai testé la solution suivante qui fonctionne parfaitement :

Code:
RewriteRule ^([0-9]+).html$ /test/cms/index.php?id=$1 [L]


L'adresse à réécrire donne ceci : 10.html.

Je veux cependant avoir un titre plus parlant et je veux utiliser un titre qui est présent dans ma base de données. Je modifie donc le code pour avoir ceci :

Code:
RewriteRule ^([0-9]+)-([a-z]*).html$ /test/cms/index.php?id=$1&titre=$2 [L]


Mais ça ne fonctionne pas alors que la page réécrite contient bel et bien le titre. Quelqu'un voit-il où est le problème ?

Merci d'avance
 
dljarod Visiter le site web du posteur
nickargall
WRInaute accro
WRInaute accro

Inscrit le: 13 Juin 2005
Messages: 3866
Localisation: Exilé au Groland à cause de Joe Dalton

URL permanente de ce messagePosté le : Mar Jan 22, 2008 15:57    Sujet du message: URL Rewriting avec titres textuels

tu peux nous donner des exemples de titres et d'URL que tu souhaites obtenir ? Ya des majuscules ? des chiffres mélangés avec des lettres ?
 
nickargall Visiter le site web du posteur
dljarod
Nouveau WRInaute

Inscrit le: 22 Jan 2008
Messages: 7
Localisation: Liège, Belgique

URL permanente de ce messagePosté le : Mar Jan 22, 2008 16:05    Sujet du message: URL Rewriting avec titres textuels

Salut, et merci pour ton aide.

En fait les titres sont des titres de pages dans le cadre d'un CMS où les clients peuvent ajouter des pages eux-mêmes. Logiquement ces titres devraient être juste composés de lettres mais prévoir que des chiffres puissent passer n'est peut-être pas une mauvaise idée. Dans l'état actuel des choses il y a des majuscules mais je peux m'en débarasser si elles posent problème.

Les adresses que j'obtiendrais avec le code ci-dessus s'il fonctionnait seraient du type 1-accueil.html mais j'aimerais avoir des adresses sans l'id et avec remplacement des espaces et apostrophes éventuelles par des tirets, donc quelque chose du genre nos-produits.html.

Voilà, j'espère que j'ai répondu à toutes tes questions.
 
dljarod Visiter le site web du posteur
nickargall
WRInaute accro
WRInaute accro

Inscrit le: 13 Juin 2005
Messages: 3866
Localisation: Exilé au Groland à cause de Joe Dalton

URL permanente de ce messagePosté le : Mar Jan 22, 2008 16:21    Sujet du message: URL Rewriting avec titres textuels

En ce qui concerne le remplacement des apostrophes, espaces ..., il te faudra gérer ça en amont, en PHP. Le .htaccess ne pourra pas le faire.

Sinon, ta règle pourrait fonctionner, mais tu ne spécifies que des lettres minuscules dans ton $2. Ca vient peut etre de là.

Essaie peut etre (.*) qui veut dire "tout" pour ton $2:
Code:

RewriteRule ^([0-9]+)-(.*).html$ /test/cms/index.php?id=$1&titre=$2 [L]
 
nickargall Visiter le site web du posteur
dljarod
Nouveau WRInaute

Inscrit le: 22 Jan 2008
Messages: 7
Localisation: Liège, Belgique

URL permanente de ce messagePosté le : Mar Jan 22, 2008 16:52    Sujet du message: URL Rewriting avec titres textuels

Merci de ton aide, ça fonctionne.

Par contre comment faire pour ne prendre en compte que le deuxième paramètre ? Y a-t-il moyen de ne lui faire prendre en compte que le deuxième ou faut-il s'arranger pour que le premier n'affiche rien en lui disant d'interdire tous les caractères (j'ai essayé (.^) mais ça n'a pas marché) ?
 
dljarod Visiter le site web du posteur
nickargall
WRInaute accro
WRInaute accro

Inscrit le: 13 Juin 2005
Messages: 3866
Localisation: Exilé au Groland à cause de Joe Dalton

URL permanente de ce messagePosté le : Mar Jan 22, 2008 17:24    Sujet du message: URL Rewriting avec titres textuels

De rien.
Pas de souci : dans ta règle, tu ne fais pas mention de $1 :

Code:

RewriteRule ^(.*).html$ /test/cms/index.php?id=$1&titre=$2 [L]


Par contre tu t'exposes à un risque, si les deux titres sont les mêmes après transformation. L'avantage de l'identifiant dans l'URL est qu'il est unique (enfin je pense qu'il s'agit d'un identifiant unique)
 
nickargall Visiter le site web du posteur
dljarod
Nouveau WRInaute

Inscrit le: 22 Jan 2008
Messages: 7
Localisation: Liège, Belgique

URL permanente de ce messagePosté le : Mar Jan 22, 2008 17:43    Sujet du message: URL Rewriting avec titres textuels

Quand je mets ce code, il se plante lors de l'affichage de la page à la requête SQL. La redirection fonctionne mais plus l'affichage de la page car il ne récupère plus l'id (qui effectivement est unique) mais le titre à la place.

De plus, lorsque j'essaye de mettre (-[a-z]*) pour afficher les tirets en plus des lettres, cela ne fonctionne pas non plus.

J'espère que je n'abuse pas de ton aide Embarassed
 
dljarod Visiter le site web du posteur
dljarod
Nouveau WRInaute

Inscrit le: 22 Jan 2008
Messages: 7
Localisation: Liège, Belgique

URL permanente de ce messagePosté le : Mer Jan 23, 2008 11:14    Sujet du message: URL Rewriting avec titres textuels

J'ai résolu le problème du tiret. Il fallait mettre ([-a-z]*) et pas (-[a-z]*).

Reste le problème consistant à enlever ignorer le premier paramètre...
 
dljarod Visiter le site web du posteur
nickargall
WRInaute accro
WRInaute accro

Inscrit le: 13 Juin 2005
Messages: 3866
Localisation: Exilé au Groland à cause de Joe Dalton

URL permanente de ce messagePosté le : Mer Jan 23, 2008 11:30    Sujet du message: URL Rewriting avec titres textuels

C'est sur que si l'affichage du contenu associé est basé sur la récupération de l'Id, si tu ne le fais pas passer, tu ne pourras pas afficher ton contenu. il te faudrait modifier le code d'affichage de la page pour qu'il aille chercher le contenu dans la base en se fiant au titre passé; bref, une usine à gaz avec beaucoup de paramètres à prendre en compte. Pouruqoi ne veux-tu pas faire passer l'identifiant unique dans ton URL ?
 
nickargall Visiter le site web du posteur
dljarod
Nouveau WRInaute

Inscrit le: 22 Jan 2008
Messages: 7
Localisation: Liège, Belgique

URL permanente de ce messagePosté le : Mer Jan 23, 2008 11:32    Sujet du message: URL Rewriting avec titres textuels

Juste une question d'avoir une adresse la plus propre possible. Je préfère une adresse du type contact.html que 5-contact.html par exemple. Maintenant si ce n'est pas possible, je devrai bien m'y résoudre...
 
dljarod Visiter le site web du posteur
dljarod
Nouveau WRInaute

Inscrit le: 22 Jan 2008
Messages: 7
Localisation: Liège, Belgique

URL permanente de ce messagePosté le : Mer Jan 23, 2008 14:09    Sujet du message: URL Rewriting avec titres textuels

J'ai trouvé la solution :

Pour ceux qui qui voudraient savoir comment :

Dans l'ajout et la modification des articles :

Code :

$titreclean = strtolower($_POST["txtTitre"]);
$remplacements = array(' ' => '-', '\'' => '-', 'é' => 'e', 'è' => 'e', 'à' => 'a', 'ù' => 'u', 'ê' => 'e', 'â' => 'a', 'ç' => 'c', 'û' => 'u', 'ô' => 'o', 'ë;' => 'e', 'î' => 'i', 'ï' => 'i', 'ü' => 'u');
$titreclean = strtr($titreclean, $remplacements);

Le titre clean s'enregistre dans un champ dédié de la base de donnée.

Dans l'affichage :

Code :

<li><a href="<?php echo $row["titreclean"] ; ?>.html"><?php echo $row["titre"] ; ?></a></li>

J'obtiens le titre retravaillé par l'URL rewriting suivant :

Code :

RewriteRule ^([-a-z]*).html$ /test/cms/index.php?titre=$1 [L]

Encore un tout grand merci !
 
dljarod Visiter le site web du posteur
 
Montrer les messages depuis:   
Revenir en haut    Forum -> URL Rewriting et .htaccess Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1 - 
Connexion
Nom d'utilisateur:    Mot de passe:      Se connecter automatiquement à chaque visite    

CLIQUEZ ICI pour vous inscrire à WebRankInfo (forum, annuaire, outils...)

Connexion

© 2001-2005 phpBB Group, support français
Personnalisation : WebRankInfo ™


 ODP  Firefox  Alsacreations  annuaire webmaster Yagoort