SlimFramework php 自定义多语言组的 404 问题

SlimFramework php 404 issue with custom multilang groups

我尝试使用 slim 框架制作我自己的多语言应用程序。我为包含所有标准应用程序路由的所有语言生成了路由组,如下所示:

$this->app->group($base_folder, function () use ( $base_folder ) {

    include 'includes.php';

    $availableLangs = explode(",", USE_MULTILINGUAGES);
    if(strlen($availableLangs['0']) > 0){
        foreach($availableLangs as $availableLang) {

            $this->app->group('/'.$availableLang, function () {
                include 'includes.php';
            });

        }
    }
});

我的文件 include.php 包含我的标准路线,如下所示:

//Redirect to Home
$this->app->map('/', function () {
    echo '/'.'<br/>';
    $this->app->redirect('home');
})->via('GET');

//Homepage
$this->app->map('/home', function () {
    $data = new Admin\GetController( 'home' );
    $data->send("Home/home.template.html");
})->via('GET');

//Others
require 'Routes/Login.php';
require 'Routes/Logout.php';
require 'Routes/Users.php';

生成的路由很好,显示的时候:

project/
project/en
project/fr
project/home
project/en/home
project/fr/home

等...

但是当我在浏览器中尝试时,只有标准的工作正常( project/ 和 project/home )。 /fr 或 /en 的自定义转到 $this->app->notFound

我在从 url 中提取 lang 时重写了 Slim 变量 ['PATH_INFO']。这就是它不起作用的原因。所以它现在工作正常,但我仍然想知道是否有更好的方法将 multilang 添加到 slim 应用程序中。

有用的资源