分页: 1 / 1

百度云空间下HTTPS错误问题

帖子发表于 : 2018年 8月 2日 10:00
dafa168
当在百度云空间下开启HTTPS, request.php 中无法检测到HTTPS, 从而导致后台样式无法加在, 准确说是 https 下 加载http地址的资源文件,都是无法加在的。

Re: 百度云空间下HTTPS错误问题

帖子发表于 : 2018年 8月 2日 10:12
dafa168
if (empty(self::$_urlPrefix)) {
if (defined('__TYPECHO_URL_PREFIX__')) {
self::$_urlPrefix == __TYPECHO_URL_PREFIX__;
} else if (!defined('__TYPECHO_CLI__')) {
self::$_urlPrefix = (self::isSecure() ? 'https' : 'http') . '://'
. (isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : $_SERVER['SERVER_NAME']);
}
}


isSecure() ; 方法判断了是不是https模式, 但是百度云的模式是 HTTP_X_FORWARDED_FOR = https
public static function isSecure()
{
return (!empty($_SERVER['HTTPS']) && 'off' != strtolower($_SERVER['HTTPS']))
|| (!empty($_SERVER['SERVER_PORT']) && 443 == $_SERVER['SERVER_PORT'])
|| (defined('__TYPECHO_SECURE__') && __TYPECHO_SECURE__);
}

故而此方法中判断server元素都没有判断到,
最后解决办法: 定义常量即可解决问题。
在 config.inc.php 中加入:

/** 是否开启安全HTTPS模式 */
define('__TYPECHO_SECURE__', true);

Re: 百度云空间下HTTPS错误问题

帖子发表于 : 2018年 8月 2日 10:18
dafa168
最后建议能在后台中设置 http和https的模式。