私はSilex 2を使用しています。無効なロケールを使用してURLがロードされた場合、デフォルトのロケールでホームページにリダイレクトしたいと思います。Silexリダイレクトロケールの変更
// i18n Control
$locale = $request->getLocale();
$allowLocale = ['en','es','de'];
if (!in_array($locale, $allowLocale)) {
$request->setLocale('en');
$response = new \Symfony\Component\HttpFoundation\RedirectResponse($app['url_generator']->generate('homepage'), 301);
$response->prepare($request);
return $response->send();
}
しかし、このコードは無限ループを生成します:ミドルウェア前
// homepage/root
$this->get('{_locale}/', function (Request $request) use ($app) {
return $app['twig']->render('index/index.html.twig', array());
})->bind('homepage');
。
私がしたい:
ユーザーはこのURLを挿入する場合:/ ESの/ fooのすべてがOKです。
このURLを/ fr/fooと入力すると、/ enにリダイレクトする必要があります。
ありがとうございました。
あなたがより簡単に、以下の私の答えを確認することを行うことができます... – mTorres
あなたの貢献をありがとう、それは私にとって有用でした。 – cybtow