No iría por la opción 1, si sus páginas están disponibles públicamente, es decir, no es necesario que inicie sesión para ver las páginas. El motivo es que un motor de búsqueda no escaneará las diferentes versiones de idioma de la página. La misma razón va contra la opción n. ° 5. Es menos probable que un motor de búsqueda identifique dos páginas como páginas separadas, si la identificación del idioma va en la cadena de consulta.
Veamos la opción 4, colocando el idioma en el nombre de host. Usaría esa opción si las versiones en diferentes idiomas del sitio contienen contenido completamente diferente. En un sitio como Wikipedia, por ejemplo, la versión griega contiene su propio conjunto completo de artículos, y la versión en inglés contiene otro conjunto de artículos.
Así que si no tiene contenido completamente diferente (que no parece de su publicación), se queda con la opción 2 o 3. No sé si hay argumentos convincentes para uno más el otro, pero no. 3 se ve mejor en mis ojos. Entonces eso es lo que usaría.
Pero solo un comentario para inspirarse. Actualmente estoy trabajando en una aplicación web que tiene 3 partes principales, una pública y dos partes para dos tipos de usuarios diferentes. He elegido el esquema de URL siguiente (con baño en referencia a la lengua, por supuesto):
http://www.example.com/en/x/y/z for the public part.
http://www.example.com/part1/en/x/y/z for the one private part
http://www.example.com/part2/en/x/y/z for the other private part.
La razón de esto es que si tuviera que dividir las tres partes arriba en aplicaciones por separado, será una reconfiguración simple en el servidor web cuando tengo el nombre de la parte en la parte superior de la ruta. P.ej. si tuviéramos que usar un sistema CMS comercial para la parte pública del sitio
Editar: Otro argumento en contra de la opción no. 1 es que si SÓLO escuchas el idioma de aceptación, no estás dando una opción al usuario. El usuario puede no saber cómo cambiar el idioma configurado en un navegador, o puede estar utilizando una configuración de computadora frinds en un idioma diferente.Al menos debe darle al usuario una opción (almacenarlo en una cookie o en el perfil del usuario)
Véase también http://stackoverflow.com/questions/449010 – Gumbo
6. Redirigir a 'http: // dominio.com/carpeta/página.el' (estilo de nombre de archivo de mod_negotiation) – Boldewyn
Tenga cuidado de no confiar en Aceptar -Lenguaje encabezado demasiado. Hay una gran cantidad de usuarios que no aceptarán amablemente una suposición automática sobre su idioma basada en ese encabezado. Asegúrese y proporcione una forma obvia de seleccionar el idioma apropiado en cada página si el idioma detectado es incorrecto. –