Php Laravel action()帮助器忽略APP_URL环境变量
在我的.env文件中,我将Php Laravel action()帮助器忽略APP_URL环境变量,php,laravel,laravel-5.2,Php,Laravel,Laravel 5.2,在我的.env文件中,我将应用程序URL设置如下: APP_URL=https://example.com 但是,无论我在哪里使用action()helper生成URL,路径都是使用http而不是https创建的 我不明白为什么会这样。站点本身在SSL上运行。我还尝试了使用“https”设置BASE\u URL环境变量-没有运气 拉威尔不应该尊重我的基本URL吗 Laravel版本:5.2 对于action()帮助程序,以及使用HTML和Forms Laravel Collective包生成表
应用程序URL
设置如下:
APP_URL=https://example.com
但是,无论我在哪里使用action()
helper生成URL,路径都是使用http而不是https创建的
我不明白为什么会这样。站点本身在SSL上运行。我还尝试了使用“https”设置BASE\u URL
环境变量-没有运气
拉威尔不应该尊重我的基本URL吗
Laravel版本:5.2
对于action()
帮助程序,以及使用HTML和Forms Laravel Collective包生成表单(包括action
属性)时,都会发生这种情况。不幸的是action()
不是基于app.url,而是基于您的请求根目录,因此如果您正在浏览https,它应该为您提供一个基于https方案的url。但你可以通过以下方式强迫它成为你所需要的:
app('url')->forceRootUrl(env('APP_URL'));
我建议您对服务提供商执行此操作。此外,除了Antonio在其中提出的建议外,您还可以使用forceSchema()方法: AppServiceProvider.php
public function boot() {
if (App::environment('production')) {
URL::forceSchema('https');
}
}
请注意,代码使用Facades,但您也可以使用全局
app()
helper。关于config/app.php
?我的是'url'=>env('APP\uurl','http://localhost“),
@Thomas是的,设置与此完全相同。然后将其更改为'url'=>env('APP_url',”https://example.com),
@Thomas试过了,没有改变。只要我在.env中有APP\u URL
,这个回退值就会被忽略。传入连接安全吗?Laravel可能无法检测SSL。尝试将其放在AppServiceProvider的引导方法中:URL::forceSchema('https');