Silex 2.0 重定向

Silex 2.0 Redirection

我是 Silex 新手,我想将“/”url 重定向到默认语言,例如“/en”。我这样做:

$app->match('/', function(Application $app){

    return $app->redirect('/Silex/www/'.$app['locale_fallbacks'][0]);
});

我是否必须将绝对 url 从服务器的根目录中放入?我只想放 $app->redirect('$app['locale_fallbacks'][0]);。这是获取默认语言的正确方法吗?

非常感谢

你不必给主机那里。正如在您的 match() 中一样,您将传递一个亲戚 url。然而,最好不要与浏览器进行新的往返并在内部转发请求,甚至通过 .htaccess.

重写它。
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpKernel\HttpKernelInterface;

$app->match('/', function () use ($app) {
    $subRequest = Request::create('/' . $app['locale_fallbacks'][0], 'GET');
    return $app->handle($subRequest, HttpKernelInterface::SUB_REQUEST);
});