所以基本上我的问题是关于将一个(或多个)子域路由到单个Laravel应用。 要详细介绍,我有多个 Route :: group ,我想让它们“连接”到特定的子域。 例如:
Route::domain('account.domain.co')→group(...
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
非常感谢您?
答案 0 :(得分:0)
您正在定义Route::group
,而没有调用它们。
对于此示例,您可能根本不需要这些组。关于这一点,documentation尚不清楚。我将它们包括在内,因为它不会伤害任何东西。
前两个用于默认的域访问方法(替换了您的代码中唯一使用的第一个路由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');
})};
//...