Вопрос
Как настроить маршрутизацию Laravel так, чтобы:
- при переходе на
mysite.com/login
используется LoginController
- при переходе на
somecompany.mysite.com/login
используется TenantLoginController
Что я делаю
У меня будет приложение Laravel 5.7 с типичной страницей входа, скажем, mystite.com/login
Я хотел бы настроить поддомен для этого приложения, например somecompany.mysite.com
, который будет иметь собственную аутентификацию.
Я бы хотел, чтобы пользователи somecompany
вошли в систему somecompany.mysite.com/login
Что я пробовал
Определение маршрута для входа на основной сайт
Route::group(['namespace' => 'App\Http\Controllers\Auth', 'middleware' => ['web']], function () {
Route::get('login', 'LoginController@showLoginForm')->name('login');
});
Определение маршрута для входа в поддомен
Route::domain('somecompany.mysite.com')->group(function ($router) {
$router->group(['namespace' => 'App\Http\Controllers\Tenant\Auth', 'middleware' => ['web']], function($router) {
$router->get('login', 'TenantLoginController@showLoginForm')->name('somecompany.login');
});
});
Что случилось
Я могу перейти к somecompany.mysite.com/login
, и на строке URL-адреса появляется сообщение somecompany.mysite.com/login
, но когда я это делаю, запрос фактически перенаправляется на контроллер 'LoginController@showLoginForm'
, а не ожидаемый 'TenantLoginController@showLoginForm'
, и типичная форма входа отображается, а не Форма входа в поддомен.
Если я изменю путь на $router->get('tenant-login'
и перейду к somecompany.mysite.com/tenant-login
, отобразится форма входа в поддомен, а somecompany.mysite.com/login
отобразит основную форму входа.