web-dev-qa-db-fra.com

Problèmes de redirection .htaccess mobile

J'essaie de configurer une redirection mobile pour un site avec 2 sous-dossiers et je ne parviens pas à faire en sorte que les deux fonctionnent en même temps.

C'est la structure du site

  • www.example.com/EN/
  • www.example.com/ES/

Comme il s’agit d’un site bilingue, chaque sous-dossier contient les fichiers correspondant à chaque version linguistique. Ensuite, j’utilisais une redirection 301 et configurais l’index dans /EN/ comme index principal. Tout était en train d'être redirigé vers elle. J'utilisais:

DirectoryIndex index.html
Redirect /index.html http://www.example.com/EN/index.html

et plusieurs RewriteCond pour rediriger example.com et les anciennes URL vers la nouvelle.

Cela fonctionnait bien avant que je décide d'ajouter une version mobile à m.example.com.

J'ai utilisé la solution fournie dans https://stackoverflow.com/questions/3680463/mobile-redirect-using-htaccess , et elle redirige correctement la version de mon mobile, mais le bureau fonctionne à la fois. De plus, ma version mobile doit également être bilingue.


Je ferai de mon mieux pour clarifier.

Mon site est bilingue. J'ai créé deux sous-dossiers (EN et ES) pour contenir le contenu de chaque langue.

Mon site de bureau nécessite une sorte de redirection pour trouver le bon index (au moins l'un d'entre eux, alors j'ai décidé de définir la version anglaise comme index principal). Le script que j'ai utilisé est comme indiqué ci-dessus.

Maintenant, quand j’ai ajouté la redirection de détection mobile (et cela m’amène à la version mobile sur un périphérique mobile), il semble aller à l’index par défaut habituel sur le bureau (www.example.com/index.html) qui est pas mon index de bureau.

Aucune suggestion?

3
val

À partir du lien que vous avez fourni ..

# Now redirect to the mobile site
RewriteRule ^ http://m.example.org%{REQUEST_URI} [R,L]

Si vous utilisez le drapeau L, cela signifie que la DERNIÈRE règle doit être traitée, vous pouvez donc avoir des surprises avec d'autres règles :-)

Vous pouvez également utiliser d'autres règles pour la version de votre ordinateur de bureau/mobile pour rediriger par défaut le sous-répertoire EN au lieu d'utiliser la commande Redirect. Cependant, je pense que le problème ici est juste votre ordre des règles dans le htaccess combiné avec le drapeau L.

2
jflaflamme