Rewrite site multilingue

Nouveau WRInaute
Bonjour à tous

d'avance mille excuse si le topic existe deja mais malgrè ma recherche je n'ai rien trouvé de concluant
(faut dire que le forum est bien garni :) )

Je suis actuellement en train de bosser sur une version multilingue de mon site

au niveau des rewrites tout est ok sauf un...le plus important
celui de la page d'accueil

[MISE EN SITUATION]
www.monsite.com/contact.html >> Affiche la page contact en français
www.monsite.com/EN/contact.html >> Affiche la page contact en anglais
www.monsite.com >> Affiche la page d'accueil en français
www.monsite.com/EN >> ERREUR 404 (au lieu d'afficher la page d'accueil en anglais)

sachant que toutes les page SANS les www sont redirigées vers les pages AVEC les www

je tourne en rond depuis hier, et du coup votre aide sera la bienvenue :)

bien sur voici mon htaccess

Code:
Options +FollowSymlinks
Options -MultiViews
RewriteEngine on

RewriteRule	 ^(EN)/(.*).php       $2.php?langue=$1 [QSA]
RewriteRule	 ^(EN)/(.*).html      $2.html?langue=$1 [QSA]

RewriteCond	 %{HTTP_HOST}         ^monsite.com$
RewriteRule	 ^(.*)                http://www.monsite.com/$1 [QSA,L,R=301]

RewriteRule	 ^index\.php$         http://www.monsite.com/ [QSA,L,R=301]
RewriteRule	 ^index\.html$        http://www.monsite.com/ [QSA,L,R=301]
 
Nouveau WRInaute
ca marche mais j'ai un probleme de redirection

car si je comprends bien le truc

ca renvoie vers la page monsite.com/index.php

sauf qu'il y a une autre regle qui me degomme le index.php

ya pas moyen de faire sans ?

le soucy est que j'ai un serveur de dev (en local) et un serveur de prod (OVH)

du coup quand je tape sur mon IP (192.168.1.2/MonSite/index.php) ca me renvoie vers www.monsite.com/?langue=EN

bref pas tres pratique :)
 
Nouveau WRInaute
(désolé pour le double post mais je peux plus éditer)

en faite ca marche pas vraiment la solution

quand je clique sur un lien qui me renvoie vers l'accueil c'est bon mais je suis redirigé (voir post ci-dessus)

par contre quand je tape l'adresse directement j'ai une erreur 404 :(
 
Nouveau WRInaute
a nouveau moi ^^

bon en faite ca marche je ne sais pas pk mais ca déconnais avec firefox quand je change de PC ou de navigateur c'est bon

il ne me reste plus qu'un petit point à gérer le slash a la fin de l'URL
la j'ai du créer 2 régles mais doit y avoir un moyen de n'en faire qu'une

voici mon htaccess (si vous avez des opti, je suis preneur)

Code:
Options +FollowSymlinks
Options -MultiViews
RewriteEngine on

RewriteRule	 ^(EN|FR)/(.*)\.(php|html) 			$2.$3?langue=$1 [QSA,NC]
RewriteRule	 ^(EN|FR)/(.*)\.(jpg|png|gif)		 $2.$3 [QSA,NC]
RewriteRule 	^(EN|FR)$							     index.php?langue=$1 [QSA,NC]
RewriteRule 	^(EN|FR)/$							 	index.php?langue=$1 [QSA,NC]

RewriteCond	 %{HTTP_HOST} 						    ^monsite.com$
RewriteRule	 ^(.*) 									  http://www.monsite.com/$1 [QSA,L,R=301]

RewriteCond	 %{THE_REQUEST} 							^./index.php
RewriteRule	 ^index\.php$ 								http://www.monsite.com/ [QSA,L,R=301]

RewriteCond	 %{THE_REQUEST} 							^./index.html
RewriteRule	 ^index\.html$ 								http://www.monsite.com/ [QSA,L,R=301]
 
WRInaute impliqué
RewriteRule ^(EN|FR)$ index.php?langue=$1 [QSA,NC]
RewriteRule ^(EN|FR)/$ index.php?langue=$1 [QSA,NC]

RewriteRule ^(EN|FR)/?$ index.php?langue=$1 [QSA,NC]
 
WRInaute impliqué
après cela permet d'accéder au même contenu par 2 urls différentes, sans redirection 301, ce qui n'est pas forcément une bonne idée.
 
Nouveau WRInaute
je suis ok mais ca devrait pas pauser de probleme

car tout mes liens seront sous la forme www.monsite.com/en
donc au niveau du crawl de google ca devrait aller

c'est juste pour si un visiteur change l'adresse en mano en laissant/ajoutant le slash
 
Discussions similaires
Haut