Si alguna vez hemos usado WordPress con el módulo WPML, habremos visto lo fácil y sencillo que es crear sitios web multidioma, cada uno con un dirección web base: /es/ para castellano, /en/ para inglés…etc.

Ahora bien, el problema se plantea cuando queremos redirigir al usuario directamente a una de estas URL’s según el idioma del navegador del usuario.

Editar el fichero .htaccess

Editamos el fichero .htaccess del directorio raíz del servidor, y debajo del RewriteBase, añadimos:

<IfModule mod_rewrite.c>
# Turn on the rewriting engine
RewriteEngine On 
RewriteBase /
 
# Si el lenguaje del usuario empieza por 'en', lo redirigimos a /en/
RewriteCond %{HTTP:Accept-Language} ^en [NC]
RewriteRule ^/?$ en/ [R,NC,L]
 
# Sino lo redireccionamos a /es/
RewriteRule ^/?$ es/ [R,NC,L]
</IfModule>

Nota: esta solución también funciona si creamos páginas web con otros CMS e incluso a mano.