RewriteCond et variable GET pour des langues, complexe !

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : RewriteCond et variable GET pour des langues, complexe !

par Hywan » 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

par mere-teresa » 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.

par Hywan » 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

par mere-teresa » 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.

RewriteCond et variable GET pour des langues, complexe !

par Hywan » 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