Laravel 5.8 + Apache - настройка поддоменов - PullRequest
0 голосов
/ 30 июня 2019

Таким образом, в основном моя проблема связана с маршрутизацией субдомена (или нескольких доменов) к одному приложению Laravel.Для более подробной информации у меня есть несколько Route :: group , и я хочу, чтобы они "подключались" к определенному поддомену.Например:

  • account .domain.co → Route::domain('account.domain.co')→group(...
  • visual .domain.co → Route::domain('visual.domain.co')→group(...

Я настроил свои виртуальные хосты так:

<VirtualHost *:443>
    ServerName domain.co
    DocumentRoot /var/www/domain/public
    DirectoryIndex index.php
    [...]
</VirtualHost>

<VirtualHost *:443>
    ServerName account.domain.co
    DocumentRoot /var/www/domain/public
    DirectoryIndex index.php
    [...]
</VirtualHost>

<VirtualHost *:443>
    ServerName visual.domain.co
    DocumentRoot /var/www/domain/public
    DirectoryIndex index.php
    [...]
</VirtualHost>

Как видите, все DocumentRoot одинаковы.В теории с конфигурацией Laravel, описанной ранее, она должна работать, но в действительности account.domain.co , visual.domain.co и domain.co перенаправляют всек тому же приложению вместо их конкретного Route :: group .


Вот web.php моего приложения

Route::get('/', 'IndexController@index')→name('index');
[...]

Route::group([ 'domain' => 'account.domain.com', ],function() {
  Route::get('/', 'AccountController@index')→name('account.index');
  [...]
});

Route::group([ 'domain' => 'visual.domain.com', ],function() {
  Route::get('/', 'VisualController@index')→name('visual.index');
  [...]
});

Да, и между прочимконфигурация PHP 7.3, Debian 8 (jessie), Apache 2.4.10 и Laravel 5.8

Большое спасибо заранее ?

1 Ответ

0 голосов
/ 30 июня 2019

Вы определяете Route::group s, не вызывая их.Для этого примера вам, вероятно, вообще не нужны группы; документация неясна в этом отношении.Я включил их, поскольку это ничего не повредит.

Первые два предназначены для методов доступа к домену по умолчанию (заменяет первый маршрут get ('/'), который был единственным, взятым в вашем коде).

Route::domain('www.domain.com')->group(function() {
get('/', 'IndexController@index')->name('index');
})};

Route::domain('domain.com')->group(function() {
get('/', 'IndexController@index')->name('index');
})};

Route::domain('account.domain.com')->group(function() {
  Route::get('/', 'AccountController@index')->name('account.index');
})};

Route::domain('visual.domain.com')->group(function() {
  Route::get('/', 'VisualController@index')->name('visual.index');
})};
//...
...