【问题标题】:Laravel add domains to controller routesLaravel 将域添加到控制器路由
【发布时间】:2015-05-10 23:41:34
【问题描述】:

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

我怎样才能做到这一点?

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

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

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

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

【问题讨论】:

    标签: laravel laravel-4 routing laravel-routing


    【解决方案1】:

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

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

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

    现在如果你去seconddomain.comrun()AppController会被调用

    【讨论】:

    • 简短而合乎逻辑。谢谢!
    【解决方案2】:

    Laravel 框架 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。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-02-08
      • 1970-01-01
      • 2023-03-27
      • 2014-02-18
      • 2014-09-11
      • 2014-07-08
      • 1970-01-01
      相关资源
      最近更新 更多