htaccess和多语言URL

时间:2016-01-06 08:43:50

标签: apache .htaccess mod-rewrite url-rewriting

我正在尝试翻译我的网址,具体取决于用户选择的语言,例如:

www.example.com/en/discover或

www.example.com/fr/decouvrir

显然我希望这两个URL指向同一页面(PHP用字典处理翻译)。我想知道在htaccess文件中是否有一种聪明的方法可以做到这一点"自动"没有为所有页面编写规则?目前我会这样做

  

RewriteRule ^ en / discover $ discover.php?lang = en [NC,L]

     

RewriteRule ^ fr / decouvrir $ discover.php?lang = fr [NC,L]

但是如果有很多页面并且我想添加另一种语言,这个解决方案并不是最简单的。

非常感谢你的帮助

1 个答案:

答案 0 :(得分:0)

你应该将所有参数传递给单个php文件(调度程序),whitch会翻译路由然后包含所需的文件。类似的东西:

的.htaccess

RewriteRule ^(.*)/(.*)$ index.php?lang=$1&include=$2 [NC,L]

PHP

// This is really bad code, just an example
$dictionary = array(
    'en' => array(
        'discover' => 'discover'
    ),
    'fr' => array(
        'decouvrir' => 'discover'
    )
);
echo $dictionary[$_GET['lang']][$_GET['include']];