Laravel 将域添加到控制器路由

Laravel add domains to controller routes

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

我怎样才能做到这一点?

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

所以我想我要做的就是让这个域指向 public 然后在我的路由文件中说这个域 shell 执行 'AppController@run'

或者在最坏的情况下,它指向“/”路由,然后在 BaseController@index 方法中我必须检查正在访问的域。但这对我来说似乎不太好。

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

首先,所有虚拟主机都应该将文档根目录设置为 public public 目录,否则 Laravel 将不会 bootstrap 正确。

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

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

现在如果你去 seconddomain.com run()AppController 将被调用

Laravel 框架 5.7.2

我想要一个单独的域用于我的 API。

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

    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。

希望对您有所帮助。