Как решить проблему с неймингом роутов при наличии поддоменов?

Есть проект, для которого должны быть реализованы региональные страницы, то каждому городу соотвествует свой поддомен {city}.site.ru. Я добавил в RouteServiceProvider.php подключение файла с роутами дважды, для основного домена и поддоменов:

Route::domain(env('APP_DOMAIN_URL'))
                ->middleware('web')
                ->namespace($this->namespace)
                ->group(base_path('routes/web.php'));

            Route::domain('{city}.' . env('APP_DOMAIN_URL'))
                ->middleware('web')
                ->namespace($this->namespace)
                ->group(base_path('routes/web.php'));


Сами роуты выглядят так:
Route::view('/policy', 'web.sections.static.policy')->name('policy');


Но при таком подключении, из-за того, что я использую имена для роутов, я получаю ошибку о дублировании названий (так как одни и те же роуты используюся для основного домена и поддоменов городов). Как можно исправить данную проблему?
  • Вопрос задан
  • 117 просмотров
Решения вопроса 1
dark_tke
@dark_tke
Помогли? Отметь решением!
Не делать двойного ввода маршрутов. Это в корне неверно. Возможные варианты в вашем случае:
1. На уровне мидлвары анализировать домен, и прокидывать поддомены, если таковые есть в запрос. А дальше рулить логикой. Разделение на субдомены и базовый с маршрутов убрать.
2. Узнать что такое Tenant https://tenancyforlaravel.com/
3. Сделать префиксы в маршрутах( что не комильфо в вашем случае)
3 Еще раз подумать над логикой страниц, возможно, там именованные маршруты вам не нужны.

Ну если дружите с английским: "Dynamic custom domain routing in Laravel" гугл в помощь
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы