0

所以基本上我的问题是关于将子域(或多个)路由到单个 Laravel 应用程序。要详细了解我有多个Route::group,我想让它们“连接”到特定的子域。例如:

  • 帐户.domain.co →Route::domain('account.domain.co')→group(...
  • 视觉.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.covisual.domain.codomain.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.3Debian 8 (jessie)和。Apache 2.4.10Laravel 5.8

4

1 回答 1

0

您正在定义Route::groups 而不调用它们。对于此示例,您可能根本不需要这些组;文件并不清楚这一点。我已将它们包括在内,因为它不会伤害任何东西。

前两个用于默认域访问方法(替换第一个路由 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');
})};
//...
于 2019-06-30T19:39:11.523 回答