具有子域名的多语言网站

时间:2011-03-08 23:40:02

标签: apache dns subdomain rewrite multilingual

我想创建一个多语言网站,默认为英文,例如example.com,其子域名为fr.example.com,de.example.com,it.example.com ......

现在,如果用户选择fr.example.com,则该网站的语言将为法语。

如果子域是fr,PHP将包含lang_fr.php,如果de,PHP将包含lang_de.php,但如果没有子域,PHP必须包含默认文件lang_en.php

网站必须只有一个源代码,内容和样式,它必须使用与example.com根目录相同的资源。

那么如何使用Apache重写从fr.example.com到example.com/index.php?lang=fr的URL 和example.com/到example.com/index.php?lang=en

1 个答案:

答案 0 :(得分:1)

您无需重写任何内容。只需检查$ _SERVER ['SERVER_NAME']。

function get_language()
{
  //not tested
  $default_language = 'en';
  $language = array_shift(explode('.', $_SERVER['SERVER_NAME'] ));
  if ( str_len( $language ) > 2 )
  {
    $language = $default_language;
  }
  return $language;
}