代码之家  ›  专栏  ›  技术社区  ›  Olivier Meunier

Silex 2.0重定向

  •  0
  • Olivier Meunier  · 技术社区  · 8 年前

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

    $app->match('/', function(Application $app){
    
        return $app->redirect('/Silex/www/'.$app['locale_fallbacks'][0]);
    });
    

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

    谢谢

    1 回复  |  直到 8 年前
        1
  •  1
  •   oshell    8 年前

    你不必给主人那里。就像你的 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);
    });