Laravel 5.6 redirect () 和 url () 如何设置域名?

Hi,各位。我在开发环境中遇到了一点问题。我先简单描述一下,现在的流程是:域名解析到 A 服务器,A 服务器中 Nginx 在域名中使用 /abc 做反向代理到 B 服务器,B 服务器正是使用 Laravel 开发的应用。而问题是,有关 redirect()url() 的地方全部使用了 A 服务器指向 B 服务器时的内网IP地址(例如:http://10.0.0.100 ),我以为在 .env 文件中配置了 APP_URL 参数就会使用该参数组装 url,而事实上是使用了入站是的 domain 做为了域名做组装,我现在能想到的是自己重写一个 redirect()url() 方法。请教各位还有其他解决方案吗?十分感谢。

iSecret
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
iSecret
最佳答案

问题已经解决,自问自答。
在查找资料的时候,发现 Laravel HTTP—— 重定向的使用与源码分析 这篇文章,发现可以强制修改域名和协议。查看源码 Illuminate\Routing\UrlGenerator 查找到 forceRootUrl() 方法,参数为域名。
解决方法:
App\Providers\AppServiceProviderboot() 中加入:

app('url')->forceRootUrl(env('APP_URL'));

Happy Coding.

5年前 评论
讨论数量: 1
iSecret

问题已经解决,自问自答。
在查找资料的时候,发现 Laravel HTTP—— 重定向的使用与源码分析 这篇文章,发现可以强制修改域名和协议。查看源码 Illuminate\Routing\UrlGenerator 查找到 forceRootUrl() 方法,参数为域名。
解决方法:
App\Providers\AppServiceProviderboot() 中加入:

app('url')->forceRootUrl(env('APP_URL'));

Happy Coding.

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!