编辑
我真的找不到从路由名称生成安全 URL 的方法。
要获得完整的 URL,我使用
echo route('my_route_name');
但是,如果我想要一个带有 https 的 URL,该怎么办?
事实上,laravel 并不关心 url 是否安全,因为它是根据当前 url 生成的。如果你在 https 页面上,route()
将返回安全 url。如果在 http 上,http://
则为 url
问题是,Laravel 没有检测到 https 已启用,这是由于服务器配置错误造成的。
你可以通过调用来检查 Laravel 是否将当前连接视为 https Request::isSecure();
对于那些在负载均衡器或其他代理后面使用 Laravel 的人,
Request::isSecure()
将始终返回 false,除非您信任X-Forwarded-Proto
来自代理服务器的标头。请参阅:Laravel 技巧 - 在 Laravel 中修复 SSL 4+@AdamLink 该死的,非常感谢。我为此搜索了几个小时。我现在将在此评论中添加一些 Google 关键字:Laravel http https nginx 反向代理,laravel 路由相对 url https。
根据我在 XAMPP/Windows 上使用 Laravel 5.2 的经验,
route()
如果请求使用 https ,则不会生成 https URL 。我注意到没有HTTPS
条目,$_SERVER
所以没有正确检测到协议。即使在 Linux 中,Laravel 5.3 也不会检测到 HTTPS。
@tirtakeniten 检查您的 .env 文件,指定的域 URL 是什么?应该是https,而不是http