У меня есть приложение, прослушивающее три типа поддоменов:
- Основное приложение: www.website.com
- Пользовательские поддомены обрабатываются по той же логикев качестве основного приложения: *. app.website.com
- Панель администратора: backend.website.com
Настройка
Пользовательские субдомены поступают из субдомена с подстановочными символами и управляются промежуточным программным обеспечением Laravel, которое проверяет правильность базы данных и направляет на www.website.com , если поступает неизвестный запрос субдомена.
В противном случае приложение ведет себя немного иначе на *. App.website.com здесь и там, но в основном совпадает с основным приложением.
Запросы на backend.website.com должно быть в пространстве имен.
Эта настройка в основном работает просто отлично.
Проблема
Доступны маршруты основного приложениячерез поддомен backend.website.com .Я хочу, чтобы маршруты администратора учитывали только маршруты внутри своей группы.
Я пытался разделить группы маршрутов по доменам с помощью подстановочного знака, но это передаст подстановочный знак в качестве первого параметра для всех действий контроллера,что нежелательно.Подстановочный знак мне вообще не нужен, так как это будет проверено и обработано промежуточным программным обеспечением.
То, что я пробовал
Route::domain('backend.website.com')->group(function () {
Route::get('/', function () {
…
});
});
$appRoutes = function() {
// this should not be hit by backend.website.com
Route::get('/', function () {
…
})->name('home');
…
};
Route::domain('www.website.com')->group($appRoutes);
// would probably work but passes $account to all
// controller actions as first parameter which is undesirable
Route::domain('{account}.app.website.com')->group($appRoutes);
Я надеюсь быть достаточно ясным иБуду признателен за вашу помощь.??