Si tienes un sitio web en Apache y necesitas redirigir a una dirección url distinta por cada idioma (inglés, español, portugués…) puede ser muy útil hacerlo mediante htaccess con la cabecera HTTP:Accept-Language que transmite el navegador del cliente. De este modo «confiaremos» en la configuración de lenguaje que cada usuario tiene en su navegador.
Así que nos ponemos manos a la obra:
Crear estructura de directorios
Deberemos crear un directorio por cada uno de los idiomas.
Por ejemplo si nuestro dominio es midominio.com crearemos en la raíz tantas subcarpetas como idiomas queramos manejar:
midominio.com/pt
midominio.com/es
midominio.com/en
…
Editar el archivo .htaccess
Añadiremos estas líneas:
RewriteEngine On RewriteBase / # Lenguaje portugués: 'pt' RewriteCond %{HTTP:Accept-Language} ^pt [NC] RewriteRule ^/?$ pt/ [R,NC,L] # Lenguaje portugués: 'es' RewriteCond %{HTTP:Accept-Language} ^es [NC] RewriteRule ^/?$ es/ [R,NC,L] #Regla general para los demás casos RewriteRule ^/?$ en/ [R,NC,L]
En el código podemos comprobar que se establecen diversas reglas de redireccionamiento para cada condición de la cabecera enviada por el navegador.