Erreur 404 UrlRewRiting
Résolu/Fermé
jiantox
Messages postés
1081
Date d'inscription
mardi 30 septembre 2008
Statut
Membre
Dernière intervention
26 janvier 2019
-
24 déc. 2012 à 12:36
jiantox Messages postés 1081 Date d'inscription mardi 30 septembre 2008 Statut Membre Dernière intervention 26 janvier 2019 - 25 déc. 2012 à 11:55
jiantox Messages postés 1081 Date d'inscription mardi 30 septembre 2008 Statut Membre Dernière intervention 26 janvier 2019 - 25 déc. 2012 à 11:55
A voir également:
- Erreur 404 UrlRewRiting
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Erreur 1001 outlook - Accueil - Bureautique
- Erreur vidéo freebox ✓ - Forum TV & Vidéo
- Instagram une erreur s'est produite ✓ - Forum Instagram
2 réponses
tryan44
Messages postés
1288
Date d'inscription
mardi 24 janvier 2012
Statut
Membre
Dernière intervention
26 octobre 2014
220
24 déc. 2012 à 14:20
24 déc. 2012 à 14:20
Salut,
L'url rewriting ce n'est pas juste un bout de code à coller dans un fichier ".htaccess" surtout quand les pages contiennent des paramètres..!
Si je ne me plante pas trop, avec le code ci-dessus vous indiquez à la suite de "RewriteBase" le répertoire visé par l'url rewriting et vous indiquez la méthode de ré écriture à la suite de "RewriteRule".
Pour faire fonctionner correctement l'url rewriting, il faut dans un premier temps une fonction de ré écriture :
...et dans un second temps, il faut également modifier tout les liens qui utilisent cette règle.
Ainsi :
devient :
La variable "$ma_variable" est donc passé à la moulinette dans la fonction "OptimiseUrl()" pour supprimer/remplacer tout caractères/espaces afin que la règle définit dans le fichier ".htaccess" puisse être utilisé correctement.
Note : non testé mais dans les grosses lignes c'est ça.
L'url rewriting ce n'est pas juste un bout de code à coller dans un fichier ".htaccess" surtout quand les pages contiennent des paramètres..!
RewriteEngine on RewriteBase /annonce/ RewriteRule ^(.*)/?$ index.php?a=$1 [L]
Si je ne me plante pas trop, avec le code ci-dessus vous indiquez à la suite de "RewriteBase" le répertoire visé par l'url rewriting et vous indiquez la méthode de ré écriture à la suite de "RewriteRule".
Pour faire fonctionner correctement l'url rewriting, il faut dans un premier temps une fonction de ré écriture :
function OptimiseUrl($chaine) { $chaine=strtolower($chaine); $accents = Array("/é/", "/è/", "/ê/","/ë/", "/ç/", "/à/", "/â/","/á/","/ä/","/ã/","/å/", "/î/", "/ï/", "/í/", "/ì/", "/ù/", "/ô/", "/ò/", "/ó/", "/ö/"); $sans = Array("e", "e", "e", "e", "c", "a", "a","a", "a","a", "a", "i", "i", "i", "i", "u", "o", "o", "o", "o"); $chaine = preg_replace($accents, $sans,$chaine); $chaine = preg_replace('#[^a-z0-9-]#','-',$chaine); while (strpos($chaine,'--') !== false) $chaine = str_replace('--','-',$chaine); return $chaine; }
...et dans un second temps, il faut également modifier tout les liens qui utilisent cette règle.
Ainsi :
<a href="index.php?a=<?php echo $ma_variable;?>"><?php echo $ma_variable;?></a>
devient :
<a href="<?php echo OptimiseUrl($ma_variable);?>"><?php echo $ma_variable;?></a>
La variable "$ma_variable" est donc passé à la moulinette dans la fonction "OptimiseUrl()" pour supprimer/remplacer tout caractères/espaces afin que la règle définit dans le fichier ".htaccess" puisse être utilisé correctement.
Note : non testé mais dans les grosses lignes c'est ça.
jiantox
Messages postés
1081
Date d'inscription
mardi 30 septembre 2008
Statut
Membre
Dernière intervention
26 janvier 2019
114
Modifié par jiantox le 24/12/2012 à 17:11
Modifié par jiantox le 24/12/2012 à 17:11
Merci à toi,
ça fonctionne parfaitement avec ceci :
RewriteEngine on
RewriteBase /annonce/
RewriteRule ^(.*)/?$ index.php?a=$1 [L]
=) merci encore
ça fonctionne parfaitement avec ceci :
RewriteEngine on
RewriteBase /annonce/
RewriteRule ^(.*)/?$ index.php?a=$1 [L]
=) merci encore
jiantox
Messages postés
1081
Date d'inscription
mardi 30 septembre 2008
Statut
Membre
Dernière intervention
26 janvier 2019
114
Modifié par jiantox le 24/12/2012 à 17:15
Modifié par jiantox le 24/12/2012 à 17:15
ah non en fait pas dutout, pour lui la valeur de a c'est index.php ...
ma variable a contient des chiffres uniquement
ma variable a contient des chiffres uniquement
tryan44
Messages postés
1288
Date d'inscription
mardi 24 janvier 2012
Statut
Membre
Dernière intervention
26 octobre 2014
220
25 déc. 2012 à 11:43
25 déc. 2012 à 11:43
A tester :
Ceci dit, je ne vois pas l'intérêt de faire de l'url rewriting uniquement pou y passer des chiffres?
RewriteRule ^([0-9]*)\.php$ index.php?a=$1 [L]
<a href="<?php echo OptimiseUrl($ma_variable);?>.php"><?php echo $ma_variable;?></a>
Ceci dit, je ne vois pas l'intérêt de faire de l'url rewriting uniquement pou y passer des chiffres?
jiantox
Messages postés
1081
Date d'inscription
mardi 30 septembre 2008
Statut
Membre
Dernière intervention
26 janvier 2019
114
25 déc. 2012 à 11:55
25 déc. 2012 à 11:55
pour avoir des liens plus court et virer le "?a=" tout moche.
je vais tester ceci :) sinon je ferais autre chose ^^
Merci à toi pour ton aide :) et joyeux noel
je vais tester ceci :) sinon je ferais autre chose ^^
Merci à toi pour ton aide :) et joyeux noel