监听的是8000端口
我用nginx(监听80端口)反代,绑定了域名www.abc.com。
于是我正常访问用的是 http://www.abc.com
有一条路由规则如下:
Route::get('/oauth/<platform>/callback', '\kkqy\controller\:platform@callback')->name('oauth_callback');如果我使用url('/oauth/wechatmedia/callback', [], false, true);生成的url是:http://www.abc.com/oauth/wechatmedia/callback这个是我需要的但是如果用
url('oauth_callback', ['platform' => 'wechatmedia'], false, true);生成的url却是:http://www.abc.com:8000/oauth/wechatmedia/callback多了:8000这个端口,反而导致无法访问了(因为只有nginx的80对外开放)我查了一下是thinkphp6的Url.php文件
if ($port && !in_array($port, [80, 443])) {
                $domain .= ':' . $port;
            }这段代码的问题,改为 $domain = request()->host();就正常了,不管是反代访问,还是直接端口访问生成的地址都可用。所以为什么不直接用 request()->host() 呢
最佳答案
		