Yop,

Je vais faire court. J'ai dans mon .htaccess ceci :

RewriteEngine on 
RewriteRule profile-([0-9]+)-([a-zA-Z0-9\-]+)-([a-zA-Z\_]+).html profile.php?id=$1&pseudo=$2&page=$3

Techniquement cette page http://localhost/WinuX-BB/profile-1-WinuX-Personnalisation.html correspond à http://localhost/WinuX-BB/profile.php?id=1&pseudo=WinuX&page=Personnalisation
Sauf que la variable $_GET'page'] n'est absolument pas reconnu..

Si vous avez des idées x)

Cordialement, WinuX

6 réponses


PhiSyX
Réponse acceptée

Le mieux serait d'enlever le - à la deuxième règle, c'est ça qui pose problème...
Pour simplifier :
RewriteRule profile-([0-9]+)-([a-zA-Z0-9]+)(-([a-zA-Z\_]+))?.html profile.php?id=$1&pseudo=$2&page=$4
/profile-1-WinuX-Messagerie_Privee.html : Fonctionne => Array ( [id] => 1 [pseudo] => WinuX [page] => Messagerie_Privee )
/profile-1-WinuX.html : Fonctionne => Array ( [id] => 1 [pseudo] => WinuX [page] => )

:)

Perso, ça marche chez moi.
Array ( [id] => 1 [pseudo] => WinuX [page] => Personnalisation )
URL: http://developer.phisyx.com/php/profile-1-WinuX-Personnalisation.html

Mais je pense que c'est parce qu'à la deuxième règle, il y a -. -Personnalisation entre dans la deuxième règle
Array ( [id] => 1 [pseudo] => WinuX-Personnalisation [page] => test )
http://developer.phisyx.com/php/profile-1-WinuX -Personnalisation -test.html

Sinon, tu peux nous dire où te renvoie http://localhost/WinuX-BB/profile-1-WinuX-Personnalisation.html ? Page 404 ?

WinuX
Auteur

Sur la page index , fin j'ai pas mis entièrement le htacess :

RewriteEngine on  
RewriteRule profile-([0-9]+)-([a-zA-Z0-9\-]+).html profile.php?id=$1&pseudo=$2
RewriteRule profile-([0-9]+)-([a-zA-Z0-9\-]+)-([a-zA-Z\_]+).html profile.php?id=$1&pseudo=$2&page=$3

En gros, si l'attribut $_GET'page'] n'est pas trouvé, alors il ne redirige pas, mais la page affiché est l'index.

Par contre, cette page ci fonctionne parfaitement http://localhost/WinuX-BB/profile-1-WinuX-Messagerie\_Privee.html

WinuX
Auteur

Ouep ca fonctionne impec.

Cependant comment faire pour l'ajouter? Car j'aurais surement des membres avec des tirets dans leur pseudo, et j'ai pas envie de les remplacer par des _ =|
Sinon faudrait que j'change de proceder, et enlever les - entre les différentes variable.

Merci bien x)

Bha tu peux remplacer par un autre caractère. Par exemple => profile-1-Jean`paul-Messagerie_Privee.html
Du moment qu'après tu remets la valeur par défault avec explode/implode.

$piecesarray = explode('`', $_GET'pseudo']);
$pseudo = implode('-', $piecesarray);
echo $pseudo; // Jean-Paul

WinuX
Auteur

Ah ouais, j'y avais tout simplement pas pensé.

Merci bien, sujet désormais résolu :)