detectar idioma en php

Mensajes
137
Puntuación de reacción
2
Buscando en internet, he encontrado, modificado y adaptado a mis necesidades algo (relativamente sencillo)

La idea es dejar en el directorio raiz en un archivo index.php el siguiente código:

Código:
<?php
//Creamos una función que detecte el idioma del navegador del cliente.
function getUserLanguage() {
$idioma =substr($_SERVER["HTTP_ACCEPT_LANGUAGE"],0,2);
return $idioma;
}
//Almacenamos dicho idioma en una variable
$user_language=getUserLanguage();
if($user_language=='en'){
header( 'Location: http://sitio.com/en' );
}
elseif($user_language=='es'){
header( 'Location: http://sitio.com/es' );
}
else{
header('Location: http://sitio.com/es')
}
?>

Pero me arroja el ya famoso mensaje:

Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator

Alguna sugerencia?

Agradecido desde ya.
 
Mensajes
137
Puntuación de reacción
2
Mira en el log del servidor cual es el problema que reporta.

[Fri Jul 29 10:56:20 2016] [error] [client 181.332.336.33] SoftException in Application.cpp:261: File "/home/site/public_html/www.sitio.com/index.php" is writeable by group
 
Mensajes
391
Puntuación de reacción
0
[Fri Jul 29 10:56:20 2016] [error] [client 181.332.336.33] SoftException in Application.cpp:261: File "/home/site/public_html/www.sitio.com/index.php" is writeable by group

Mira si dicho archivo tiene mas permisos de los que deberia. Prueba con un 644 en lugar de 777 si es que lo llega a tener.
 
Mensajes
137
Puntuación de reacción
2
Mira si dicho archivo tiene mas permisos de los que deberia. Prueba con un 644 en lugar de 777 si es que lo llega a tener.

Pues fíjate que tenías razón! Era una cuestión de permisos!.
Es más, de hecho el código estaba con errores.

Les dejo el código ya funcionando al cual le pueden agregar y adaptar a sus necesidades

<?php
//Creamos una función que detecte el idioma del navegador del cliente.
function getUserLanguage() {
$idioma =substr($_SERVER["HTTP_ACCEPT_LANGUAGE"],0,2);
return $idioma;
}
//Almacenamos dicho idioma en una variable
$user_language=getUserLanguage();
if($user_language=='en'){
header( 'Location: http://sitio. com/en' );
}
elseif($user_language=='es'){
header( 'Location: http://sitio. com/es' );
}
else{
header('Location: http://sitio. com/es' );
}
?>
 

Roley

Piedra
Usuario de Piedra
Mensajes
31
Puntuación de reacción
0
Muchas gracias. Tienes uno para enviar a los usuarios de iPhone a una web y a los de Android a otra?
 

snucker

Piedra
Usuario de Piedra
Mensajes
43
Puntuación de reacción
0
Si estas usando Wordpress podrías usar algún plugin para redireccionar al lenguaje que corresponde.
 
Arriba