我有一个Laravel应用程序和一个域来访问它。域指向公用文件夹并执行' /'然后执行某种方法的路由' BaseController @ index'在控制器中。现在我想添加另一个域。但是这个域应该执行另一种方法' AppController @ run' (路线可以是' / app / run /.
我怎样才能做到这一点?
我为这个直接指向public / app / run的其他域创建了一个vhost。这有效,但浏览器显示我不喜欢的domain.com/app/run。
所以我认为我所做的是让这个域指向公共,然后在我的路由文件中说这个域shell执行' AppController @ run'
或者在最坏的情况下,它指向' /'路由然后在BaseController @ index方法内部我必须检查访问哪个域。但这似乎对我不好。
有什么想法吗?我想知道为什么我在谷歌上找不到很多东西,因为这不应该对我很重要。
答案 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。
希望这会有所帮助。