我在laravel 5.8中具有两次域的sendResetLinkResponse控制器生成了一个错误的URL。
但是应该是
APP_URL设置为
APP_URL = domain.org
我使用自定义配置,以能够将api.domain.org用作端点,而不是www.domain.org/api
我的配置是:
protected function mapApiRoutes() {
Route::domain('api.' . env('APP_URL'))
->middleware('api')
->namespace($this->namespace)
->group(base_path('routes/api.php'));
}
我该如何解决?
答案 0 :(得分:1)
我建议将您的子域设置为更具动态性,即
Route::domain('api.{domain}')
->middleware(['api', function ($request, $next) {
$request->route()->forgetParameter('domain');
return $next($request);
}])
->namespace($this->namespace)
->group(base_path('routes/api.php'));
上面的代码基本上允许任何域名,然后中间件将其从路由参数中删除,以免与路由闭包或控制器方法混淆。
您还需要将以下内容添加到服务提供商的启动方法中:
Route::pattern('domain', '[a-z0-9.]+');
通过这种方式,您可以使用APP_URL
作为网站的域。