我在反向代理后面运行 Laravel 项目,这就是为什么我需要强制使用根 url 和方案:URL::forceRootUrl($proxy_url);
URL::forceScheme($proxy_schema);我已将此添加到我的顶部,/routes/web.php并且在运行之前它工作正常:php artisan optimize它在/bootstrap/cache 没有强制 url 和方案的情况下缓存路由,所以现在我所有的 url 都指向错误的根 url。我试图将代码移动到/Providers/AppServiceProvider.php(bothregister和boot) 以使其在缓存路由时生效,但没有运气。我必须手动删除路由缓存文件/bootstrap/cache才能使我的路由再次工作。是否在缓存路由时使其生效?编辑:我还尝试创建一个全局中间件,在其中执行强制 url 和模式。在缓存路由之前它再次工作正常,但是在运行php artisan optimize路由时再次不正确。
2 回答
慕工程0101907
TA贡献1887条经验 获得超5个赞
使用URL::forceRootUrl
和URL::forceScheme
似乎是使用反向代理的一种解决方法。干净的解决方案是在您的配置中添加受信任的代理。这篇文章完整地解释了这个功能。但归结为:
使用
App\Http\Middleware\TrustProxies
中间件$proxies
使用负载均衡器的 IP编辑中间件属性
protected $proxies = [
'192.168.1.1',
'192.168.1.2',
];
从以下代码中删除 /routes/web.php
URL::forceRootUrl($proxy_url);
URL::forceScheme($proxy_schema);
- 2 回答
- 0 关注
- 218 浏览
添加回答
举报
0/150
提交
取消