现在为什么那么多网站,都用了https协议呢?
原因很简单,百度站长明确要求大家使用了。
为了排名,为了收录,很多站长,都直接用了https协议。
比如,我们百度搜索关键词:重庆格力空调维修。
这个用了https。
百度:减肥药。
所以,为了用上这个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。
可是呢,如果你的网站想增加一点东西,或者修改一下东西,从服务器直接把网站下载到本地,还原数据后,会发现后台打不开,直接就是一片空白。
我百度了网上的教程:关于帝国后台登录出现空白页解决方法:
一、首先确保网校转移相关数据表信息修改确认无误。
二、检查服务器当前环境,采用重装帝国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全部,改成系统自动识别。
第三步:这时候,再去备份数据库,才有意义,如果没有经过第一步,第二步,直接就去备份数据库,下载下来的文件,在本地调试,一定是空白一片的。
上面是前奏,下面才是主菜,以下方法适用帝国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
查找
1 | return 'http://' . $domain ; |
替换为
1 | return ( $_SERVER [ 'HTTPS' ] ? 'https' : 'http' ). '://' . $domain ; |
方法二、
步骤一:找到/e/class/connect.php文件中如下代码:
123456789 | function 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 ; } |
步骤二:
找到
123456789101112131415 | function 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 原创发布。