今天在部署一套php開源系統(tǒng),發(fā)現(xiàn)生成的 url 少了 http 所以跟了一遍代碼發(fā)現(xiàn) $_SERVER 中既然沒有REQUEST_SCHEME字段,
后來嘗試在 nginx 配置文件中加入以下代碼無效
proxy_set_header X-Forwarded-Proto??$scheme;??
復制代碼
無奈只能通過修改程序解決
if ( (! empty($_SERVER['REQUEST_SCHEME']) && $_SERVER['REQUEST_SCHEME'] == 'https') || (! empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') || (! empty($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == '443') ) {
$_SERVER['REQUEST_SCHEME'] = 'https';
} else {
$_SERVER['REQUEST_SCHEME'] = 'http';
}
復制代碼
解決了之后查到還有這個方法,不過沒有嘗試,如果遇到同樣問題的同學可以嘗試下
fastcgi_param REQUEST_SCHEME $scheme.
復制代碼
雖然改程序能解決,但一些開源程序還是挺頭疼的,個人建議希望官方能默認支持我的環(huán)境
centos7.4 + bt5.3.0 + Nginx -Tengine2.2