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
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
iSecret
最佳答案

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

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

Happy Coding.

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

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

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

Happy Coding.

6年前 评论

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