Laravel将域添加到控制器路由

时间:2015-03-09 17:41:47

标签: laravel laravel-4 routing laravel-routing

我有一个Laravel应用程序和一个域来访问它。域指向公用文件夹并执行' /'然后执行某种方法的路由' BaseController @ index'在控制器中。现在我想添加另一个域。但是这个域应该执行另一种方法' AppController @ run' (路线可以是' / app / run /.

我怎样才能做到这一点?

我为这个直接指向public / app / run的其他域创建了一个vhost。这有效,但浏览器显示我不喜欢的domain.com/app/run。

所以我认为我所做的是让这个域指向公共,然后在我的路由文件中说这个域shell执行' AppController @ run'

或者在最坏的情况下,它指向' /'路由然后在BaseController @ index方法内部我必须检查访问哪个域。但这似乎对我不好。

有什么想法吗?我想知道为什么我在谷歌上找不到很多东西,因为这不应该对我很重要。

2 个答案:

答案 0 :(得分:1)

首先,所有vhost都应该将文档根目录设置为public公共目录,否则Laravel将无法正确引导。

然后,您可以为该域添加特定路由。例如:

Route::group(['domain' => 'seconddomain.com'], function(){
    Route::get('/', 'AppController@run');
});

现在,如果您转到seconddomain.com中的run() AppController将被称为

答案 1 :(得分:0)

Laravel Framework 5.7.2

我想要一个单独的API域。

我的解决方案是在Providers / RouteServiceProvider.php中编辑mapApiRoutes()

    protected function mapApiRoutes()
{
    //This is what we're changing to Route:domain('www.sub.domain.com')
    Route::prefix('api')
         ->middleware('api')
         ->namespace($this->namespace)
         ->group(base_path('routes/api.php'));
}

,该函数应如下所示:

protected function mapApiRoutes()
{
    Route::domain('www.sub.domain.com')
         ->middleware('api')
         ->namespace($this->namespace)
         ->group(base_path('routes/api.php'));
}

您还需要根据要完成的工作来重新配置Apache。

希望这会有所帮助。