Laravel 子域路由 - NotFoundHttpException
Laravel subdomain route - NotFoundHttpException
我正在 Laravel 项目中处理 API,但在设置子域 (Ubuntu) 时遇到问题。
我设置了Virtualhost
,Routing
,启用了vhost_alias
虚拟主机:
<VirtualHost *:80>
ServerName domain.io
ServerAlias domain.io
DocumentRoot mypath
<Directory mypath>
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName api.domain.io
ServerAlias api.domain.io
DocumentRoot mypath
<Directory mypath>
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
我的路线:
Route::group(['domain' => 'api'.env('APP_HOST')], function() {
Route::get('test', function() {
return 'test';
});
});
Url http://api.domain.io/
重定向到主域 domain.io
。当我访问我的路线 http://api.happs.io/test
时出现错误(好像没有那条路线):
NotFoundHttpException in RouteCollection.php line 161:
在 ServerAlias
上的域名前添加 *.
并确保您有通配符 CNAME。
<VirtualHost *:80>
ServerName domain.io
ServerAlias *.domain.io
DocumentRoot mypath
<Directory mypath>
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
试试这个,将域和子域放在名称服务器中:
<VirtualHost *:80>
ServerName domain.io api.domain.io
DocumentRoot mypath
<Directory mypath>
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
您的 hosts
文件是正确的。问题是您的 env('APP_HOST')
是一个静态值,但它需要根据您的设置动态变化。
一个选项,可能是最简单的方法(我也使用过),就是手动为子域创建一个路由。
Route::group(['domain' => 'api.happs'], function() {
// Do something
});
我正在 Laravel 项目中处理 API,但在设置子域 (Ubuntu) 时遇到问题。
我设置了Virtualhost
,Routing
,启用了vhost_alias
虚拟主机:
<VirtualHost *:80>
ServerName domain.io
ServerAlias domain.io
DocumentRoot mypath
<Directory mypath>
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName api.domain.io
ServerAlias api.domain.io
DocumentRoot mypath
<Directory mypath>
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
我的路线:
Route::group(['domain' => 'api'.env('APP_HOST')], function() {
Route::get('test', function() {
return 'test';
});
});
Url http://api.domain.io/
重定向到主域 domain.io
。当我访问我的路线 http://api.happs.io/test
时出现错误(好像没有那条路线):
NotFoundHttpException in RouteCollection.php line 161:
在 ServerAlias
上的域名前添加 *.
并确保您有通配符 CNAME。
<VirtualHost *:80>
ServerName domain.io
ServerAlias *.domain.io
DocumentRoot mypath
<Directory mypath>
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
试试这个,将域和子域放在名称服务器中:
<VirtualHost *:80>
ServerName domain.io api.domain.io
DocumentRoot mypath
<Directory mypath>
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
您的 hosts
文件是正确的。问题是您的 env('APP_HOST')
是一个静态值,但它需要根据您的设置动态变化。
一个选项,可能是最简单的方法(我也使用过),就是手动为子域创建一个路由。
Route::group(['domain' => 'api.happs'], function() {
// Do something
});