本文整理自PHPCMS官方论坛的一篇文章,感谢作者的奉献。
假设已经配置好ssl证书,不知如何申请ssl证书者请自行百度。
1、如果已经安装好phpcms,则需要对caches/configs/system.php中的配置选项做替换,将"http://"全部替换为"https://"。如有必要,数据库中已存在的链接也要完全替换为https开头。
2、程序修改部分:
(1)修改phpcms/modules/admin/site.php 大约45行和128行的正则
('/http:\/\/(.+)\/$/i', $domain))
修改为
('/(http|https):\/\/(.+)\/$/i', $domain))
(2)修改phpcms/modules/admin/templates/setting.tpl.php 大约18行中的正则
http:\/\/(.+)[^/]$
修改为
http[s]?:\/\/(.+)[^/]$
(3)修改phpcms/modules/admin/templates/site_add.tpl.php 大约13行中的正则
http:\/\/(.+)\/$
修改为
http[s]?:\/\/(.+)\/$
(4)修改phpcms/modules/admin/templates/site_edit.tpl.php 大约11行中的正则
http:\/\/(.+)\/$
修改为
http[s]?:\/\/(.+)\/$
(5)修改phpcms/modules/link/index.php 大约41行和51行中的正则
/^http:\/\/(.*)/i
修改为
/^http[s]?:\/\/(.*)/i
(6)修改phpcms/modules/link/templates/link_add.tpl.php 大约10行中的正则
^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&]*([^<>])*$
修改为
^http[s]?:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&]*([^<>])*$
(7)修改phpcms/modules/link/templates/link_edit.tpl.php 大约11行中的正则
^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&]*([^<>])*$
修改为
^http[s]?:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&]*([^<>])*$
严格按照以上步骤修改后,注册用户 帐号登录等操作完全正常 和PHPSSO通信完全正常,后台添加信息和前台链接URL完全正常
注意:
a.如注册用户提示‘操作失败’,请在后台会员模块设置中关闭‘注册时可选会员模型’或者保证会员不少于两个会员模型
b.在PHP5.6或以上的PHP版本中会出现和PHPSSO无法正常通信的情况,因为PHP5.6及以上fsockopen和file_get_contents等函数openssl需要验证目标的SSL证书是否可信,需要安装openssl根证书才可以,否则openssl会报警告信息 证书验证失败!
如需在php5.6或以上版本中使用HTTPS的请参阅PHP官方有关php5.6和openssl的资料http://php.net/manual/en/migration56.openssl.php
3、经过上面修改后,phpcms中的内容可通过https访问,但分页出现错误。解决方法为:
打开文件 phpcms\libs\functions \global.func.php ,找到738行的位置:
$url = str_replace(array('http://','//','~'), array('~','/','http://'), $url);
修改为
$url = str_replace(array('https://','//','~'), array('~','/','https://'), $url);
经过以上三步,phpcms完美支持https,结合页面静态化和url伪静态规则,亲测静态页面也可用https。
此时的网站实际上通过http和https都能访问,如果要强制全站跳转到https,
相关文章
phpcms-v9中将一个站点下的文章内容完美的推送到另一个站点下2024-09-24
phpcms loop循环判断是否为最后一条的代码2024-06-18
Phpcms V9 文章或图片模型增加相关下载功能2022-12-30
phpcms文章列表增加一键推送到百度功能2022-12-08
phpcms 标题SEO栏目不同的代码2022-11-14
PHPCMS替换内容的两种方法:str_replace和preg_replace2022-10-25
phpcms 搜索结果第一页比设定的多一条数据的解决办法2021-01-05
phpcms v9 字段多行文本不换行的解决办法2020-09-22
phpcms 栏目和文章页面“您没有访问该信息的权限”跳转登陆页面2020-09-17
phpcms 模板header包含action="lists"导致搜索结果错误的解决方案2020-04-26