Comment convertir les espaces %20 en tiret ?

Nouveau WRInaute
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
 
WRInaute occasionnel
Petite fonction perso, que j'utilise pour convertir du texte pour le mettre dans mes URL.
Code:
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.
 
WRInaute discret
un coup de urlencode(ton titre d'actu)
avant de construire ton lien
du moins pour les espace qui seront convertis en +
 
Nouveau WRInaute
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
 
Nouveau WRInaute
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:
RewriteRule ^article-([0-9]+)-([a-zA-Z]+)\.html$

très simplement par :

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

Encore merci pour votre aide

Bonne continuation à vous.
 
Discussions similaires
Haut