出于搜索引擎优化的目的,我想在网址中加入我的Laravel项目页面的区域设置,例如http://localhost/en或http://localhost/nl/about。
在尝试实现这一目标时,我找到了一些教程和软件包,但我对它们并不完全满意。最流行的建议是mcamara的laravel-localization包,但创建URL需要很长的函数调用。其他软件包可以用于较旧的Laravel版本,也可以提供许多我不需要的功能,这只会使我的代码和数据库变得混乱。
Marwelln's tutorial似乎很完美:它以我想要的方式修改URL,使用默认的URL帮助程序,如action(),url()和route(),并且不会创建不必要的数据库表。但是,本教程似乎适用于Laravel 5.0并且与Laravel 5.4不兼容。任何人都可以帮助我以最基本的方式在最新的Laravel版本中实现这样的URL修改吗?
答案 0 :(得分:0)
尝试以下方法:
在你的RouteServiceProvider.php中,在map()方法的beginnig中添加以下行:
$locale = $request->segment(1);
if($locale) {
$this->app->setLocale($locale);
$this->prefix = $locale;
}
mapWebRoutes()方法应如下所示:
protected function mapWebRoutes()
{
$parameters = [
'middleware' => 'web',
'namespace' => $this->namespace,
];
if ($this->prefix) {
$parameters['prefix'] = $this->prefix;
}
Route::group($parameters, function ($router) {
require base_path('routes/web.php');
});
}
然后按照您提供的示例链接中的其余说明进行操作。我猜应该是全部。
注意:行$ this-> app-> setLocale($ locale)没有多大意义,因为你在中间件上这样做。