最新公告
  • 欢迎您光临仿站吧 帝国CMS模板一站式建站供应平台 . 欢迎加入VIP
  • 帝国CMS用了https协议,后台一片空白终极解决方法

    正文概述 仿站吧   2023-03-09 04:16:43  

    现在为什么那么多网站,都用了https协议呢?

    原因很简单,百度站长明确要求大家使用了。

    为了排名,为了收录,很多站长,都直接用了https协议。

    比如,我们百度搜索关键词:重庆格力空调维修。

    blob.png

    这个用了https。

    百度:减肥药。

    blob.png

    所以,为了用上这个https,大家站长都很努力,去购买SSL证书。

    当然,帝国CMS7.5也支持了,这个证书。

    通常网站一般采用HTTP传输协议即可,但针对内容安全性要求更高的网站推荐采用HTTPS(比如:各银行网站等都是采用HTTPS)。

    所以针对安全性要求更高的网站,帝国CMS7.5版新增支持HTTPS传输协议,更安全。

    帝国CMS7.5版可自行灵活选择是否使用HTTPS:

    1、支持由系统自动识别当前服务器是否使用HTTPS。

    2、支持设置全站使用http。

    3、支持设置全站使用https。

    4、支持设置后台https,前台http。

    5、支持设置后台http,前台https。

    blob.png

    可是呢,如果你的网站想增加一点东西,或者修改一下东西,从服务器直接把网站下载到本地,还原数据后,会发现后台打不开,直接就是一片空白。

    我百度了网上的教程:关于帝国后台登录出现空白页解决方法:

    一、首先确保网校转移相关数据表信息修改确认无误。

    二、检查服务器当前环境,采用重装帝国CMS方式,下载帝国CMS文件并传到对应的位置,注意文件做好备份(几个帝国目录)。

    在服务器网址里面输入/e/admin/install进行环境的检测。有几率出现报错“将short_open_tag(/etc/php.ini)设置为On,才可继续进行”,

    修改完成后重启nginx(nginx -s reload)的同时一定要重启php-fpm(/etc/init.d/php-fpm restart),否则不会生效。继续进行下一步

    检测环境。同理可以采用edusoho安装配置前的环境检测。

    三、有可能帝国安装的版本不同(查看版本:e/class/EmpireCMS_version.php),数据库导入之后可

    能存在差异,在不一致的情况下把原来有关根目录下帝国文件夹(/e,/d,...)拷贝过来。再次登录。

    注1:如果出现登录成功,但是又马上出现您未登录,请赋予e/data/adminlogin 777权限,同时清理缓存,即可解决。

    我自己核对过,综合分析,应该不是网站文件不齐全,或者权限造成的,也不可能是数据库不齐全。

    发现,真正的问题就是https造成的!

    因为我们本地是http://localhost/

    那网上,是用了http://www.haosenc1688.com/这样的完整域名。

    哪怎么办?怎么样在,本地关闭https,这应该才是终极的解决问题。

    第一步:在虚拟主机,把控制https跳转的代码是.htaccess文件,可以把这个文件改成.htaccess_bak,待到重新上传到空间主机,先要在主机上暂停ssl,待到本地修改完毕,再修改回来,当然也要记住恢复ssl。

    附linux西部数码的正则表达式:

    RewriteEngine On
    RewriteCond %{HTTP:From-Https} !^on$ [NC]
    #RewriteCond  %{HTTPS} !^on$ [NC]                      # 非亚数机房用这一行替换上一行规则
    RewriteCond %{HTTP_HOST} ^(www.)?haosenc1688.com$ [NC]                # 将abc.com和www.abc.com跳转到https://www.abc.com,防止apache子站继承上级目录.htaccess受影响
    RewriteRule ^(.*)$ https://www.haosenc1688.com/$1 [R=301,L]

    第二步:在帝国CMS7.5后台,把https全部,改成系统自动识别。

    第三步:这时候,再去备份数据库,才有意义,如果没有经过第一步,第二步,直接就去备份数据库,下载下来的文件,在本地调试,一定是空白一片的。

    blob.png

    上面是前奏,下面才是主菜,以下方法适用帝国cms7.5版本:

    7.5版本已经有了http和https自动识别,但是因为一些疑难杂症的原因,自动识别判断的不准,后台登录也是空白,

    我们可以打开e/config.php查找'httptype'=>0改为'httptype'=>2即可

     

    'httptype'=>0,  代表自动
    'httptype'=>1,代表全站http
    'httptype'=>2,代表全站https
    'httptype'=>3,代表后台https,前台http
    'httptype'=>,代表后台http,前台https


    以下方法适用帝国cms7.2和以下的版本:

    方法一、

    打开/e/class/connect.php文件,ctrl+h

    查找

    1return 'http://'.$domain;

    替换为

    1return ($_SERVER['HTTPS'] ? 'https':'http').'://'.$domain;

    方法二、

    步骤一:找到/e/class/connect.php文件中如下代码:

    123456789function eReturnDomain(){        $domain=RepPostStr($_SERVER['HTTP_HOST'],1);        if(empty($domain))        {                return'';        }        return 'http://'.$domain;    }

    替换成:

    12345678910111213$domain=RepPostStr($_SERVER['HTTP_HOST'],1);     if(empty($domain))     {         return '';     }     return ($_SERVER['HTTPS'] ? 'https':'http').'://'.$domain; }

    步骤二:

    找到

    123456789101112131415function FWeReturnDomain(){     $domain=RepPostStr($_SERVER['HTTP_HOST'],1);     if(empty($domain))     {         return '';     }     return 'http://'.$domain; }

    替换为:

    12345678910111213$domain=RepPostStr($_SERVER['HTTP_HOST'],1);     if(empty($domain))     {         return '';     }     return ($_SERVER['HTTPS'] ? 'https':'http').'://'.$domain; }

    以上文章是由:爱思60度QQ:52440488 原创发布。

    仿站吧,一个优质的源码资源平台!
    仿站吧 » 帝国CMS用了https协议,后台一片空白终极解决方法