Comment convertir les espaces %20 en tiret ?

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

Pascal Richard
Nouveau WRInaute
 
Messages: 12
Inscription: Mar Sep 13, 2005 15:43

Comment convertir les espaces %20 en tiret ?

Message le Sam Mai 20, 2006 12:26

Bonjour,

J'ai regardé avec attention dans le forum avant de poster ce message.

Je suis en train de faire des tests rewriting et j'ai une url initiale de ce type :

http://www.site.com/dossier/index.php?a ... 0actualite

mon fichier htaccess
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^article-([0-9]+)-([a-zA-Z]+)\.html$ /dossier/index.php?act=comment&idnews=$1&titre=$2 [L]

mon url rewriting devrait être la suivante :
http://www.site.com/dossier/article-12- ... alite.html

Mais le problème, c'est l'espace qui est interprété par %20 dans le titre de ma news.

Comment, pour le titre, je peux convertir %20 (ou tout autre signe de ponctuation) en (tiret) - afin que je puisse obtenir une url propre ?

Merci par avance pour vos conseils

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

Message le Sam Mai 20, 2006 15:27

Petite fonction perso, que j'utilise pour convertir du texte pour le mettre dans mes URL.
Code: Tout sélectionner
function tep_text_for_uri($text) {
      $tofind = "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ";
      $replac = "AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn";
      $text = strtr($text,$tofind,$replac);
      
      $text = strtolower($text);
      
      $text = ereg_replace("[^a-zA-Z0-9]", "-", $text);
      
      while (strstr($text, '--'))
         $text = str_replace('--', '-', $text);
         
      return(ereg_replace("-$", "", $text));
   }

Elle vire les accent, met en minuscule et remplace tout les caractère non alphanumerique par des tirets.


mate
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 189
Inscription: Sam Sep 28, 2002 21:44

Message le Sam Mai 20, 2006 16:21

un coup de urlencode(ton titre d'actu)
avant de construire ton lien
du moins pour les espace qui seront convertis en +

Pascal Richard
Nouveau WRInaute
 
Messages: 12
Inscription: Mar Sep 13, 2005 15:43

Message le Sam Mai 20, 2006 19:06

Merci "magic corp" pour cette regex que j'ai donc placé dans le fichier function.

Elle fonctionne, c'est très efficace, la syntaxe est correcte maintenant les espaces sont remplacés par des tirets.

Mais je ne parviens pas à atteindre la page en question.

Cela vient peut-être du fait que la variable du titre à elle seule affiche les tirets de la regex. Ce qui pourrait gêner l'interprétation pour le rewriting... C'est curieux pourtant, à moins que le problème se situe dans le .htaccess

Pour le post de "mate", les espaces convertis en +, je ne suis pas certain que ce soit optimal pour le référencement... merci quand même je vais essayer de tester cela.

Si vous avez une idée en ce qui concerne la cible de la page...

Merci pour votre aide

Pascal Richard
Nouveau WRInaute
 
Messages: 12
Inscription: Mar Sep 13, 2005 15:43

Message le Lun Mai 22, 2006 8:24

Bonjour,

Juste pour vous informer que tout fonctionne normalement après avoir fait une petite modification dans mon fichier htaccess.

J'ai donc remplacé :

Code: Tout sélectionner
RewriteRule ^article-([0-9]+)-([a-zA-Z]+)\.html$


très simplement par :

Code: Tout sélectionner
RewriteRule ^article-([0-9]+)-(.*)\.html$


Encore merci pour votre aide

Bonne continuation à vous.


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 :



Qui est en ligne

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