Laravel 5 один экземпляр, несколько идентичных поддоменов

Я хотел бы использовать один сервер, который использует базовую установку Laravel, и иметь субдомены, которые ссылаются на эту установку. Все субдомены будут такими же, как SaaS.

Я посмотрел вокруг, и соединения с базами данных просты, но мне интересно, если вы можете сделать это разумно с той же кодовой базой для поддоменов.

Мир поддоменов включает в себя минимально необходимые файлы для своего поддомена — возможно, публичный индекс и начальную загрузку? Надеюсь, без ссылок все.

Я не беспокоюсь о конфигурации сервера, я просто хотел бы указать правильное направление для кода Laravel, например, промежуточное программное обеспечение для обработки запроса, а затем указать на этот поддомен?

У многих тем, которые я прочитал, нет ответа, который кажется стандартным, есть идеи или ссылки?

Кроме того, если бы это была установка с несколькими серверами, не было бы хорошо с сервером NFS для ядра?

0

Решение

С laravel вы можете проверить URL, не используя поддоменов, а просто группировать запросы маршрутизации.

Группы маршрутов также могут использоваться для обработки маршрутизации в субдомене.
Субдоменам могут быть назначены параметры маршрута так же, как и URI маршрута,
позволяя вам захватить часть субдомена для использования в вашем
маршрут или контроллер. Субдомен может быть указан с помощью
ключ домена в массиве атрибутов группы:

Route::group(['domain' => '{account}.myapp.com'], function () {
Route::get('user/{id}', function ($account, $id) {
// your code
});
});

Подробнее об этом читайте в документации по Laravel https://laravel.com/docs/5.4/routing#route-group-sub-domain-routing


BOUNTY

Вы также можете поставить больше параметров для того же Route::groupэто может быть, например,

Route::group(['domain' => '{subdomain}.{domain}.{tld}'], function () {
Route::get('user/{id}', function ($account, $id) {
// your code
});
});

В то же время вы можете ограничить параметры домена, которые вы собираетесь принять, используя Route::pattern определение.

Route::pattern('subdomain', '(dev|www)');
Route::pattern('domain', '(example)');
Route::pattern('tld', '(com|net|org)');
Route::group(['domain' => '{subdomain}.{domain}'], function () {
Route::get('user/{id}', function ($account, $id) {
// your code
});
});

В этом предыдущем примере все следующие домены будут приняты и правильно маршрутизированы

  • www.example.com
  • www.example.org
  • www.example.net
  • dev.example.com
  • dev.example.org
  • dev.example.net
3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]