laravel 主域路由优先于动态子域
Posted
技术标签:
【中文标题】laravel 主域路由优先于动态子域【英文标题】:laravel main domain route is taking precedence over dynamic subdomain 【发布时间】:2019-12-23 15:48:53 【问题描述】:我正在开发一个 Laravel 项目,并构建了一个功能来创建动态子域,这真的很好。这是路线的代码。
Route::group(['domain' => 'subdomain.domain.ext'], function($subdomain)
Route::get('/', 'UserController@userPage')->name('userPage');
Route::post('/', 'UserController@userPageSave')->name('userPageSave');
);
子域工作正常,但只要我尝试访问主域,它就会优先于子域
Route::get('/', function()
return view('general.homepage');
);
所以我把这个主路由代码然后我不能再访问子域了。子域现在基本上显示主域中的任何内容.. 令人沮丧。
【问题讨论】:
写下两种情况下访问的url(主域和子域) 【参考方案1】:来自 laravel 文档 https://laravel.com/docs/5.8/routing#route-group-sub-domain-routing
为了确保您的子域路由可达,您应该在注册根域路由之前先注册子域路由。这将防止根域路由覆盖具有相同 URI 路径的子域路由。
【讨论】:
【参考方案2】:来自 laravel 8。 https://laravel.com/docs/7.x/routing#route-group-subdomain-routing
为了确保您的子域路由可达,您应该在注册根域路由之前注册子域路由。这将防止根域路由覆盖具有相同 URI 路径的子域路由。
如果您不理解上述引用的含义,因为这基本上是这种情况下的问题,这意味着您将子域路由放置(注册)在任何根域路由的正上方。
你应该不做什么:
//Rooot Domain route(s)
Route::get('/', function ()
return view('welcome');
);
//Sub Domain route(s)
Route::domain('admin.site')->group(function ()
Route::get('/', function ()
return "I will only trigger when domain is admin.site.";
);
);
你应该做什么:
//Sub Domain route(s)
Route::domain('admin.site')->group(function ()
Route::get('/', function ()
return "I will only trigger when domain is admin.site.";
);
);
//Root Domain route(s)
Route::get('/', function ()
return view('welcome');
);
【讨论】:
以上是关于laravel 主域路由优先于动态子域的主要内容,如果未能解决你的问题,请参考以下文章