Cas concret d'URL rewriting

WRInaute discret
Bonjour,

Je souhaite que ma page monsite.com/afriquedusud/animaux.php?id=autruche&header=21 devienne monsite.com/afriquedusud/animaux-autruche-21.html.

Pour ce faire, j'utilise l'URL rewriting dans mon .htaccess, le code est le suivant :
Code:
RewriteEngine on
RewriteRule \afriquedusud/animaux-([a-z]+)\-([0-9]+)\.html$ /afriquedusud/animaux.php?id=$1&header=$2

Mais cela ne fonctionne pas.

Quelqu'un a-t-il une idée ?
Merci d'avance :wink:
 
Nouveau WRInaute
ya qu'a demander

Helo,
le .htacess vat transformer
monsite.com/afriquedusud/animaux-autruche-21.html
en
monsite.com/afriquedusud/animaux.php?id=autruche&header=21

et pas l'inversse.
Dans l'autre sens il te faut agire directement dans le fichier php où
se trouve ton lien.
moi j'utilise cette fonction php là:
function lienurlrewriting($url) {
if (eregi("(.*).php(.*)",$url,$regs)) {
$monurl = $regs[1];
$geturl = $regs[2];
while (eregi("(.*)(\?|&)([^=]+)=([^=]*)(.*)",$geturl,$regs)) {
$geturl = $regs[1]."_".$regs[3]."_".$regs[4].$regs[5];
}
$url = $monurl.$geturl;
} elseif(eregi("(.*).php",$url,$regs)) {
$url = $regs[1];
}
$url = strtr($url, "éèêëàâîï", "eeeeaaii");
return $url.".html";
}

elle te donnera cette url:
monsite.com/afriquedusud/animaux_id_autruche_header_21.html


Pour ton .htaccess :

RewriteEngine on
RewriteRule ^animaux_id_([^_]+)_header_([^_]+).html$ /afriquedusud/animaux.php?id=$1&header=$2 [L]



attention a placer ton .htaccess dans le dossier "afriquedusud"
Le ^_ signifit tous les caractéres hormis le _
si tu veux tu peus mettre :
0-9 a la place pour que des chiffres
ou
A-Za-z a la place pour que des lettres

sa donnerait:

RewriteEngine on
RewriteRule ^animaux_id_([A-Za-z]+)_header_([0-9]+).html$ /afriquedusud/animaux.php?id=$1&header=$2 [L]




Voilaaaaaaaa
heu, j'oubliais, BON COURAGE


j'aurrais écri ta régle comme ça:

RewriteEngine on
RewriteRule ^animaux-([A-Za-z]+)-([0-9]+).html$ /afriquedusud/animaux.php?id=$1&header=$2 [L]


et le .htaccess dans le dossier afriquedusud
 
WRInaute discret
OK, merci dicsite pour cette explication, je vais m'y mettre !!!
Je vais d'abord essayer avec le code que tu donnes à la fin. :wink:
 
WRInaute discret
Cool, ça marche, j'ai effectivement mis le .htaccess dans le dossier afriquedusud et tout roule !
Encore merci à toi :wink:
 
Nouveau WRInaute
[NC] NoCase, ou « insensible à la casse ». La règle suivante :
RewriteRule ^script\.php$ programme.php [NC,L]
S’appliquera aussi bien à script .php, SCRIPT.PHP ou ScRiPt .PhP

et

[L] arrete la procédure. Une sorte de "endif"


pour dire ;-)
alors c'est probablement mieu de mettre [NC,L] que [L]


et un merci a correiaj ;-)
 
Discussions similaires
Haut