RewriteCond et variable GET pour des langues, complexe !

ViPHP
ViPHP | 4674 Messages

22 sept. 2005, 15:33

Bonjour et merci de lire mon message (et si possible d'y répondre ^^)
Alors pour mon site, j'avais penser à faire un systeme d'urlrewriting avec un .htaccess. Tout va bien, je n'ai aucun probleme.

Sauf que j'aimerai que les URLs aient cette forme la :
monsite.net/lang/autre/chose/

et /lang/ soit comprit comme ?lang=$1

Donc j'ai pensé à faire une condition avec .htaccess, mais j'ai beau retourner le problème dans tout les sens, rien n'en tombe ...
Voici mon code

Code : Tout sélectionner

RewriteEngine on ###### # lang RewriteCond %{QUERY_STRING} ^lang=([^&]+)$ RewriteRule ^(.*){1,3}/(.*)/?$ index.php?lang=$1&$2 [L] RewriteRule ^(.*){1,3}/(.*)/?$ index.php?lang=fr&$2 [L] # !lang #######
Je pense que c'est le plus abouti de tous mes tests ...

J'ai regarder sur internet, mais les rares soluces que j'ai trouvé sont avec UNE seule variable, et j'ai rien derrière. Ca ne devrait pas poser de problème normalement, puisque j'ajoute $2 !

Si vous avez une petite astuce, et autre, je suis preneur :)

Merci Beaucoup
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

22 sept. 2005, 16:51

Modération : je déplace ton sujet dans Autre, car il concerne la config serveur et Apache, plus que le PHP.
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

ViPHP
ViPHP | 4674 Messages

24 sept. 2005, 08:31

merci de m'avoir déplacer, mais du coup j'ai pas eut de réponses lol ^^
c'est pas grave, en cherchant bien, et en étant reparti depuis 0, j'ai réussi :]

*joie*

merci
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

24 sept. 2005, 13:11

En ce cas, peux tu mettre la bonne façon de faire ?
Celui qui a le même problème trouvera plus facilement.
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

ViPHP
ViPHP | 4674 Messages

25 sept. 2005, 10:04

bonjour :)

ah oui jsuis désolé ! lol j'avais completement oublié :s pardon pardon pardon :oops:

alors, au lieu de boucler le value de ma première variable, boucle qui se lance selon le RewriteCond, j'ai tout simplement placé sur chacune de mes lignes, un petit motif, et la vérification du value ce fait en php, au début de ma page index (toutes les langues sont dans un array, et apres, in_array bla bla)
par exemple :

Code : Tout sélectionner

RewriteRule ^([a-z]+)/([A-Za-z0-9]+)/?$ /index.php?lang=$1&truc=$2 [L]
donc ^([a-z]+)/ est le motif qui va récupérer ma langue (de/, en/, fr/, ...)

et concernant php :
$langArray = array('en', 'fr', 'he');
if(in_array($_GET['lang'], $langArray))
	define("LANG", $_GET['lang'], TRUE);
else
	define("LANG", "fr", TRUE);
ce n'est pas mon code exact, je l'ai raccourcis volontairement, mais ca marche tout de meme.
de cette façon, la langue se retrouve dans une constante : LANG

voili voilou :)
passez tous une bonne journée, merci
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).