Version complète: sur le forum Webmaster Hub : Remplacer caractére %20 dans fichier .htaccess
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > Fichier .htaccess et réécriture d'URLs
yvan
Bonjour,

Est-il possible de remplacer les espaces (%20) dans une url via le fichier .htaccess ??

Si qq à une réponse... merci!
Jeanluc
Bonjour,

Pas compris la question.

Tu pourrais donner un exemple de ce que tu veux faire ?

Jean-Luc
yvan
Bonjour JeanLuc,

Sur cette url
http://www.monsite.com/annonce-85-Bonnets%...%20foulards.htm

j'utilise un .htaccess

RewriteEngine on
RewriteRule ^annonces-(.+)\.htm$ /affichecat.php?nomcat=$1 [L]
RewriteRule ^annonce-([0-9]+)-(.+).htm$ /voirannonce.php?no=$1&sujet=$2 [L]
ErrorDocument 404 /404.htm


et je souhaite remplacer les caractéres %20 par des -


Merci!
Jeanluc
S'il y a maximum 2 espaces, tu pourrais faire ceci (non testé):
CODE
RewriteEngine on
RewriteRule ^annonces-(.+)\.htm$ /affichecat.php?nomcat=$1 [L]
RewriteRule ^annonce-([0-9]+)-(.+)\%20(.+)\%20(.+)\.htm$ /annonce-$1-$2-$3-$4.htm [R=301]
RewriteRule ^annonce-([0-9]+)-(.+)\%20(.+)\.htm$ /annonce-$1-$2-$3.htm [R=301]
RewriteRule ^annonce-([0-9]+)-(.+).htm$ /voirannonce.php?no=$1&sujet=$2 [L]
ErrorDocument 404 /404.htm

De cette façon, tu commences par faire une redirection 301 des anciennes adresses (avec les %20) vers les nouvelles (avec les tirets). Dans cette version, il y a finalement une réécriture vers une page en php, comme avant, mais maintenant la 2ème variable comprend des tirets.

Jean-Luc
kazhar
Mais le mieux serait tout de même de les modifier dans ton script.
Voici la fonction que j'utilise pour réecrire mes titres en url (sur le premier des sites dans mon profil)

CODE
function formaturl($url) {
    $url = strtolower($url);
    $in = array(
 " ",
 "_",
 ".",
 " ",
 "`",
 "'",
 "’",
 ",",
 "(",
 ")",
 "}",
 "{",
 "&",
 "$",
 
 "!",
 "?",
 "\"",
 "/",
 ":",
 
 "é",
 "è",
 "ê",
 "ë",
 "à",
 "ù",
 "ô",
 "ç",
 "«",
 "»",
 
 "+",
 
 
 "--",
 "--",
    );

    $out = array(
 "-",
 "-",
 "-",
 "-",
 "",
 "",
 "",
 "",
 "",
 "",
 "",
 "",
 "",
 "",
 "",
 
 "",
 "",
 "",
 "-",
 "",
 
 "e",
 "e",
 "e",
 "e",
 "a",
 "u",
 "o",
 "c",
 "",
 "",
 
 "-plus-",
 
 "-",
 "-"
    );

    $url = str_replace($in, $out, $url);
    return $url;
}

str_replace()
Jeanluc
J'imagine que c'est ce qu'il a fait mais que les moteurs de recherche continuent à lui envoyer des visiteurs aux anciennes adresses. wink.gif

Jean-Luc
yvan
Je vais essayer tous ça!
Merci beaucoup pour votre aide...
yvan
Pour le fichier .htaccess, cela ne fonctionne pas.
Pour la modif du script, je me demande dans quelle page le placer?! c'est un site d'annonce et dois-je l'ajouter dans la page "ajoutannonce" ou la page de visualisation de l'annonce!

??!
Jeanluc
CITATION(yvan @ samedi 25 mars 2006, 16h52)
Pour le fichier .htaccess, cela ne fonctionne pas.

Tu pourrais expliquer précisément ce qui fonctionne et ce qui ne fonctionne pas ? Sinon, c'est quasiment impossible d'aider.

Jean-Luc
yvan
Il n'y a aucun changement, même dans le cas où une nouvelle page est créée
Les anciennes régles continues de fonctionner mais pas les nouvelles!
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.