iNCiTE Web Posté 20 Juillet 2011 Posté 20 Juillet 2011 Bonjour Je n'arrive pas à faire mon test. Je souhaite vérifier que l'URL demandée est bien de la forme : www.domaine.com/sousdom/xxxxxx.html Comment tester que "sousdom" est bien présent et fait partie d'une liste de valeurs ? Mes essais avec Rewritecond ne sont pas concluants. Merci
SStephane Posté 21 Juillet 2011 Posté 21 Juillet 2011 RewriteCond %{HTTP_HOST} ^www\.domaine\.com RewriteCond %{REQUEST_URI} ^sousdomRewriteRule ... Non ?
iNCiTE Web Posté 21 Juillet 2011 Auteur Posté 21 Juillet 2011 Hello Merci de la réponse mais ça ne fonctionne pas... EN fait je dois vérifier qu'une adresse contient bien fr ou gb comme sous-dossier. Si on a l'adresse www.domaine.com/page.html je voudrais rediriger vers www.domaine.com/fr/page.html
SStephane Posté 21 Juillet 2011 Posté 21 Juillet 2011 RewriteCond %{HTTP_HOST} ^www\.domaine\.com RewriteCond %{REQUEST_URI} !^/(fr|en)RewriteRule ^(.*)$ /fr/$1 [L] Ca doit être ça, par contre, fais gaffe à ta base '/' ou '', ne copie pas mes règles sans tenir compte de ta conf
iNCiTE Web Posté 21 Juillet 2011 Auteur Posté 21 Juillet 2011 Oui ça semble mieux... Le problème est que le "page.html" passe aussi par une ré-écriture (un genre de *.html => index.php?page=*) et que ça se marche dessus... Je me retrouve avec www.domaine.com/fr/index.php et que évidemment ça ne fonctionne pas Il faudrait que la règle ajoute juste le /fr/ avant que ça ré-écrive (pourtant le "L" indique bien qu'il faut stopper ?)
SStephane Posté 21 Juillet 2011 Posté 21 Juillet 2011 Dans la mesure où tu souhaites que plusieurs règles s'appliquent, il va falloir que tu jongles un peu avec ces flags. NB : S'agissant manifestement d'un choix de langue, je pense aussi que ta redirection n'a rien à faire dans un htaccess mais aurait plus sa place dans un contrôleur.
iNCiTE Web Posté 21 Juillet 2011 Auteur Posté 21 Juillet 2011 NB : S'agissant manifestement d'un choix de langue, je pense aussi que ta redirection n'a rien à faire dans un htaccess mais aurait plus sa place dans un contrôleur. Un quoi ? La redirection est temporaire. L'ajout de la 2ème langue vient de se faire donc je souhaite rediriger les pages sans l'indication de langue vers la VF (ça fonctionne mieux ensuite)
SStephane Posté 21 Juillet 2011 Posté 21 Juillet 2011 RewriteCond %{REQUEST_URI} !^/(fr|en)RewriteRule ^(.*)$ /fr/$1 En début de fichier et sans le flag afin que le parcours de tes règles continue je dirai sans avoir essayé.
iNCiTE Web Posté 22 Juillet 2011 Auteur Posté 22 Juillet 2011 Bon c'est toujours pas ça... Il y a cafouillage au niveau des redirections... Voilà ce que contient le fichier : RewriteCond %{REQUEST_URI} !^/(fr|gb)/ [NC]RewriteRule ^(.*)$ /fr/$1 [R=301]RewriteRule ^([fr|gb]*)/(.*)\.html$ /index.php?p=$2&lg=$1 [QSA,L] Donc normalement domaine.com/mapage.html doit renvoyer vers domaine.com/fr/mapage.html qui renvoie vers domaine.com/index.php?p=mapage&lg=fr ??
Dan Posté 22 Juillet 2011 Posté 22 Juillet 2011 (modifié) Lors d'une redirection avec entête 301 , la règle est de mettre l'URL complète (http://....) Ensuite, je te suggère de modifier tes règles comme ceci : RewriteRule ^/?(.*)$ http://ledomaine.tld/fr/$1 [R=301,L] (comme c'est une redirection externe, le L est implicite...) et RewriteRule ^/?(fr|gb)/(.*)\.html$ /index.php?p=$2&lg=$1 [QSA,L] Tu ne peux jamais être certain que le / sera (ou ne sera pas) transmis à mod_rewrite. Là au moins cela devrait fonctionner partout. De plus, un choix de texte s'écrit (texte1|texte2) et non [texte1|texte2] Modifié 22 Juillet 2011 par Dan Modifié là seconde règle, pour la simplifier
iNCiTE Web Posté 22 Juillet 2011 Auteur Posté 22 Juillet 2011 Merci Dan pour les précisions et la correction / c'est déjà ça de fait. Évidemment ça n'avance pas ma choucroute à savoir que : RewriteCond %{REQUEST_URI} !^/(fr|gb)/ [NC]RewriteRule ^/?(.*)$ /fr/$1 [QSA]RewriteRule ^/?(fr|gb)/(.*)\.html$ /index.php?p=$2&lg=$1 [QSA,L] En fait c'est la deuxième règle qui ne fonctionne pas, le $2 est perdu, il ne récupère pas les paramètres passés à l'origine...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant