【问题标题】:Silex bilingual URLs routingSilex 双语 URL 路由
【发布时间】:2015-11-08 22:17:32
【问题描述】:

我想知道在 Silex 中实现想要的(见下文)的最佳方式是什么。

这就是我想要的:

  • 所有 URL 都必须以语言环境开头(/en/page1、/fr/page1、/en/page2、/fr/page2、...)
  • 当用户点击主页时,我将检查浏览器语言并将 /en 或 /fr 添加到主页
  • 当添加 /en 或 /fr 到主页时,有没有办法在 Silex 中做到这一点而不重定向(我认为重定向主页不是一个好的 SEO 实践(我在 SEO 方面的知识非常有限,所以也许我错了))?

谢谢

【问题讨论】:

    标签: localization url-routing silex


    【解决方案1】:

    你可以看看http://silex.sensiolabs.org/doc/organizing_controllers.html

    特别是:

    $app->mount('/blog', $blog);
    

    所以使用这个我认为你可以做类似的事情:

    $app->mount('/{_locale}', $site);
    

    我还没有尝试过,但我认为它会起作用,请告诉我:)

    【讨论】:

      【解决方案2】:

      对我来说,这是 Silex v2.x 最简单、最干净的选择:

      安装 silex-local 包

      composer require pmaxs/silex-locale "^2.0"

      将 LocalServiceProvidet 添加到您的 app.php 文件中:

      $app->register(new Pmaxs\Silex\Locale\Provider\LocaleServiceProvider(), [
          'locale.locales' => ['en', 'ca', 'es'],
          'locale.default_locale' => 'en',
          'locale.resolve_by_host' => false,
          'locale.exclude_routes' => ['^_'],
      ]);
      
      $app->register(new Silex\Provider\LocaleServiceProvider(), []);
      

      这样,您无需在端点中添加任何额外内容,而且默认情况下会处理所有内容。

      查看https://github.com/pmaxs/silex-locale 了解有关 Silex v1.x 的信息。

      【讨论】:

        猜你喜欢
        • 2023-04-01
        • 1970-01-01
        • 2015-12-07
        • 1970-01-01
        • 1970-01-01
        • 2013-03-05
        • 1970-01-01
        • 1970-01-01
        • 2018-02-09
        相关资源
        最近更新 更多