为了账号安全,请及时绑定邮箱和手机立即绑定

在laravel中使用强制url缓存网络路由

在laravel中使用强制url缓存网络路由

PHP
心有法竹 2021-09-05 18:12:16
我在反向代理后面运行 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 回答

?
红糖糍粑

TA贡献1815条经验 获得超6个赞

自 laravel 5.6 起删除了 php artisan optimize(源 2

//img1.sycdn.imooc.com//6134981b000182cc12470415.jpg


查看完整回答
反对 回复 2021-09-05
?
慕工程0101907

TA贡献1887条经验 获得超5个赞

使用URL::forceRootUrlURL::forceScheme似乎是使用反向代理的一种解决方法。干净的解决方案是在您的配置中添加受信任的代理。这篇文章完整地解释了这个功能。但归结为:

  1. 使用App\Http\Middleware\TrustProxies中间件

  2. $proxies使用负载均衡器的 IP编辑中间件属性

  protected $proxies = [

        '192.168.1.1',

        '192.168.1.2',

    ];


从以下代码中删除 /routes/web.php


URL::forceRootUrl($proxy_url);

URL::forceScheme($proxy_schema);


查看完整回答
反对 回复 2021-09-05
  • 2 回答
  • 0 关注
  • 218 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信