Redirecció per idioma amb eZPublish

Avui he hagut de buscar la manera de redirigir l'arribada a una web feta amb ezPublish segons la configuració del navegador.

Segur que hi ha moltes maneres de fer-ho, però la que jo he triat és força simple. Per una banda es crea (si no existeix) l'arxiu .htaccess a l'arrel de l'aplicació.

DirectoryIndex br.php index.php index.html index.htm

Amb això el que aconseguim és que les connexions que es facin a la pàgina directament es redirigeixin a br.php (br de browser).

D'altra banda creem aquest arxiu (br.php) amb el següent contingut:

<?
$langstr =$GLOBALS['HTTP_SERVER_VARS']['HTTP_ACCEPT_LANGUAGE'];
$langar = explode(",",$langstr);
$lang = $langar[0];
if($lang == "ca") {
    header("Location: index.php/cat/");
} elseif($lang == "es") {
    header("Location: index.php/esl/");
} else {
    header("Location: index.php/eng/");
}
?>

Ja sé que és molt millorable, però la funció la cumpleix. Si detecta algun dels idiomes previstos segons la instal·lació de l'ezPublish fa la redirecció.

Cal recordar que això només serveix per la primera connexió, la que no s'especifica l'arxiu, per exemple http://www.socaqui.cat.

Com es pot veure, el sistema és aplicable a moles altres aplicacions i a molts altres propòsits.

En aquest cas es tractava de detectar l'idioma definit en el navegador, però ens podem trobar en el cas que ens interessi realitzar una acció o una altre en funció del propi navegador.