Любая помощь будет действительно присвоена о том, как этого добиться.
В настоящее время у меня есть три отдельных приложения, два внешних интерфейса, работающих с vue.js, и одно внутреннее приложение с арендой laravel, обслуживающее только API, без внешнего интерфейса.
В качестве основного базового URL-адреса или внутреннего URL-адреса указано значение example.com, это приложение для аренды. Он автоматически генерирует URL-адрес subdomain.example.com для арендаторов и баз данных, поскольку пакет аренды работает.
Еще одна настройка домена для secure.example.com, которая указывает на другое приложение vue, где мы регистрируемся. Работает отлично.
Теперь у меня есть третье приложение на vue.js для арендатора, которое указывает на что-нибудь на *.example.com, и то, как работает аренда, заключается в том, что подстановочные знаки и каталог должны быть установлены для основного приложения, в котором установлена аренда, чтобы аренда работала с поддоменами.
Я не могу создать *.example.com и указать его на приложение vue, как вызовы API, а затем перейти к приложению vue, а не к серверной части, поскольку поддомен *.example указывает на приложение vue
Весь смысл в том, чтобы полностью отделить пользовательский интерфейс Tenant с помощью внешней среды, такой как vue.js, от внутренней.






Я использую Quasar отдельно от Laravel Api с пакетом Hyn Multitenant.
brightmind-erp.com
demo.brightmind-erp.com
В public/panel из общей папки Laravel я вставляю dist-активы из Quasar и перенаправляю вызовы '/' на тот маршрут, где Vue Router вступает в действие:
Route::get('/', function() {
return redirect()->route('frontend');
});
// Route everything else to Vue
Route::get('panel/{any?}', function () {
return file_get_contents(public_path().'/panel/index.html');
})->where('any', '.*')->name('frontend');
Если вы используете Webpack, вам нужно настроить его так, чтобы он находил активы Vue из (в данном случае) папки «/panel»....
Я боролся с множеством руководств, чтобы настроить файл .htaccess или конфигурацию nginx, чтобы API работал в маршруте «/api», а vue — в «/», но я не мог
Спасибо, Уолтер, за то, что поделился своими знаниями. На самом деле мы хотим разместить весь интерфейс на другом сервере. Сделать это в Laravel с помощью vue довольно просто, так как это один базовый проект, и все маршруты и API идут в одно приложение из nginx.
Я не могу понять вашу проблему. Если вы разместите интерфейс на другом сервере, у вас будет другой домен, и вы будете использовать API из *.domain для этого арендатора.
Я работаю над этим и, возможно, найду решение, которым обязательно поделюсь с сообществом.
Я бы лично использовал регулярное выражение и удостоверился, что если есть что-то с точкой перед
example.com, следует рассматривать как поддомен, в противном случае это основной домен.