搜 索

比较全面的修改phpcms程序让其支持https协议的方法

编辑:QTOOL.NET日期:2019-11-1597

现在的网站已经很多都启用了https协议了,然而在使用phpcms程序制作的网站中,默认的原版phpcms程序是不支持https协议的,无法在https环境中正常操作和运行,那么怎样才能完整的将phpcms修改为支持https协议访问呢?

这是站长很久很久之前在使用phpcms制作网站项目时,将phpcms程序修改为支持https协议的每一步修改的方法,应该比较全面了,虽然已经很久了,但phpcms已经很久没更新了,所以依旧可以使用。

方法如下:

打开 /phpcms/libs/classes/attachment.class.php 找到函数class attachment

行286

if($preurl=='http://' || $preurl=='ftp://' ||$preurl=='mms://' || $preurl=='rtsp://' || $preurl=='thunde' || $preurl=='emule://'|| $preurl=='ed2k://')

修改为

if($preurl=='http:/' || $preurl=='ftp://' ||$preurl=='mms://' || $preurl=='rtsp:/' || $preurl=='thunde' || $preurl=='emule:'|| $preurl=='ed2k:/')

行306

$okurl = 'http://'.$HomeUrl.'/'.$surl;

修改为

$okurl = SITE_PROTOCOL.$HomeUrl.'/'.$surl;

行309

elseif($surl[0]=='/') {

$okurl = 'http://'.$BaseUrlPath.'/'.substr($surl,2,strlen($surl)-2);

修改为

elseif($surl[1]=='/') {

$okurl = SITE_PROTOCOL.$BaseUrlPath.'/'.substr($surl,2);

行323

$pstr = 'http://';

修改为

$pstr = SITE_PROTOCOL;

行333

$okurl = 'http://'.$BaseUrlPath.'/'.$surl;

elseif($preurl=="http:/"||$preurl=='ftp://' ||$preurl=='mms://' || $preurl=="rtsp://" || $preurl=='thunde' || $preurl=='emule:'|| $preurl=='ed2k:/')

修改为

$okurl = SITE_PROTOCOL.$BaseUrlPath.'/'.$surl;

elseif($preurl=="http:/"||$preurl=='ftp:/' ||$preurl=='mms://' || $preurl=="rtsp:/" || $preurl=='thunde' || $preurl=='emule:'|| $preurl=='ed2k:/')

行337

$okurl = 'http://'.$BaseUrlPath.'/'.$surl;

修改为

$okurl = SITE_PROTOCOL.$BaseUrlPath.'/'.$surl;

行340

if($preurl=='ftp://' || $preurl=='mms://' || $preurl=='rtsp://' || $preurl=='thunde' || $preurl=='emule:'|| $preurl=='ed2k:/') {

修改为

if($preurl=='ftp://' || $preurl=='mms://' || $preurl=='rtsp:/' || $preurl=='thunde' || $preurl=='emule:'|| $preurl=='ed2k:/') {

行343

$okurl = preg_replace('/^(http:\/\/)/i','',$okurl);

修改为

$okurl = preg_replace('/^(http(s?):\/\/)/i','',$okurl);

行345

return 'http://'.$okurl;

修改为

return SITE_PROTOCOL.$okurl;

--------------------------------qtool.net----------------------

/phpcms/libs/functions/global.func.php 找到 function pageurl

行796

$url = str_replace(array('http://','//','~'), array('~','/','http://'), $url);

修改为

$url = str_replace(array('http://','https://','//','~'), array('~','~','/',SITE_PROTOCOL), $url);//qtool,net

----------------------------------------------------------------

/phpcms/modules/admin/site.php 找到 class site extends admin

行45

if (!empty($domain) && !preg_match('/http:\/\/(.+)\/$/i', $domain)) {

修改为

if (!empty($domain) && !preg_match('/http(s?):\/\/(.+)\/$/i', $domain)) {

行128

if (!empty($domain) && !preg_match('/http:\/\/(.+)\/$/i', $domain)) {

修改为

if (!empty($domain) && !preg_match('/http(s?):\/\/(.+)\/$/i', $domain)) {

----------------------------------------------------------------

/phpcms/modules/admin/templates/site_add.tpl.php 找到 include $this->admin_tpl

行13

$("#domain").formValidator({onshow:"<?php echo L('site_domain_ex')?>",onfocus:"<?php echo L('site_domain_ex')?>",tipcss:{width:'300px'},empty:false}).inputValidator({onerror:"<?php echo L('site_domain_ex')?>"}).regexValidator({regexp:"http:\/\/(.+)\/$",onerror:"<?php echo L('site_domain_ex2')?>"});

修改为

$("#domain").formValidator({onshow:"<?php echo L('site_domain_ex')?>",onfocus:"<?php echo L('site_domain_ex')?>",tipcss:{width:'300px'},empty:false}).inputValidator({onerror:"<?php echo L('site_domain_ex')?>"}).regexValidator({regexp:"http(s?):\/\/(.+)\/$",onerror:"<?php echo L('site_domain_ex2')?>"});//adminun.com

-------------------------------qtool---------------------------

/phpcms/modules/admin/templates/site_edit.tpl.php 找到 include $this-&gt;admin_tpl

行11

$("#domain").formValidator({onshow:"<?php echo L('site_domain_ex')?>",onfocus:"<?php echo L('site_domain_ex')?>",tipcss:{width:'300px'},empty:false}).inputValidator({onerror:"<?php echo L('site_domain_ex')?>"}).regexValidator({regexp:"http:\/\/(.+)\/$",onerror:"<?php echo L('site_domain_ex2')?>"});

修改为

$("#domain").formValidator({onshow:"<?php echo L('site_domain_ex')?>",onfocus:"<?php echo L('site_domain_ex')?>",tipcss:{width:'300px'},empty:false}).inputValidator({onerror:"<?php echo L('site_domain_ex')?>"}).regexValidator({regexp:"http(s?):\/\/(.+)\/$",onerror:"<?php echo L('site_domain_ex2')?>"});

-------------------------------qtool.net-----------------------


phpcms/modules/attachment/functions/global.func.php 找到  pc_base::load_config

行54

$upload_path = empty($admin_url) ? APP_PATH : 'http://'.$admin_url.'/';

修改为

$upload_path = empty($admin_url) ? APP_PATH : SITE_PROTOCOL.$admin_url.'/';

-----------------qtool.net---------------------------------------------------

/phpcms/modules/content/templates/content_list.tpl.php找到include admin_tpl

行92行

<td align='center' ><?php echo $r['id'];?></td>

<td>

之下与在

<?php

if($status==99) {

if($r['islink']) {

之上添加

[<?php echo $this->categorys[$r[catid]][catname]?>]

行97

} elseif(strpos($r['url'],'http://')!==false) {

修改为

} elseif(strpos($r['url'],'http://')!==false || strpos($r['url'], 'https://') !== false) {

------------------------------------qtool.net------------------

/phpcms/modules/content/templates/content_page.tpl.php找到 function closeParent()

行28

<div class="content-menu ib-a blue line-x"><a href="javascript:;" class=on><em><?php echo L('page_manage');?></em></a><span>|</span> <a href="<?php if(strpos($category['url'],'http://')===false) echo siteurl($this->siteid);echo $category['url'];?>" target="_blank"><em><?php echo L('click_vistor');?></em></a> <span>|</span> <a href="?m=block&c=block_admin&a=public_visualization&catid=<?php echo $catid;?>&type=page"><em><?php echo L('visualization_edit');?></em></a> 

修改为

<div class="content-menu ib-a blue line-x"><a href="javascript:;" class=on><em><?php echo L('page_manage');?></em></a><span>|</span> <a href="<?php if(strpos($category['url'],'http://')===false && strpos($category['url'],'https://') ===false) echo siteurl($this->siteid);echo $category['url'];?>" target="_blank"><em><?php echo L('click_vistor');?></em></a> <span>|</span> <a href="?m=block&c=block_admin&a=public_visualization&catid=<?php echo $catid;?>&type=page"><em><?php echo L('visualization_edit');?></em></a>

---------------------------------------qtool.net---------------

/phpcms/modules/content/type_manage.php找到 ype_manage extends admin

行217

if(strpos($r['url'], 'http://') === false) {

修改为

if(strpos($r['url'], 'http://') === false && strpos($r['url'], 'https://') === false) {

----------------------------------------------------------------

phpcms/modules/link/templates/link_add.tpl.php 找到 admin_tpl

行10

$("#link_url").formValidator({onshow:"<?php echo L("input").L('url')?>",onfocus:"<?php echo L("input").L('url')?>"}).inputValidator({min:1,onerror:"<?php echo L("input").L('url')?>"}).regexValidator({regexp:"^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&]*([^<>])*$",onerror:"<?php echo L('link_onerror')?>"})

修改为

$("#link_url").formValidator({onshow:"<?php echo L("input").L('url')?>",onfocus:"<?php echo L("input").L('url')?>"}).inputValidator({min:1,onerror:"<?php echo L("input").L('url')?>"}).regexValidator({regexp:"^http(s?):\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&]*([^<>])*$",onerror:"<?php echo L('link_onerror')?>"})

----------------------------qtool------------------------------

/phpcms/modules/link/templates/link_edit.tpl.php 找到 admin_tpl

行11

$("#link_url").formValidator({onshow:"<?php echo L("input").L('url')?>",onfocus:"<?php echo L("input").L('url')?>"}).inputValidator({min:1,onerror:"<?php echo L("input").L('url')?>"}).regexValidator({regexp:"^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&]*([^<>])*$",onerror:"<?php echo L('link_onerror')?>"})

修改为

$("#link_url").formValidator({onshow:"<?php echo L("input").L('url')?>",onfocus:"<?php echo L("input").L('url')?>"}).inputValidator({min:1,onerror:"<?php echo L("input").L('url')?>"}).regexValidator({regexp:"^http(s?):\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&]*([^<>])*$",onerror:"<?php echo L('link_onerror')?>"})

---------------------------qtool.net---------------------------

/phpcms/modules/member/templates/member_modelfield_add.tpl.php 找到 $(function()

行89

<option value="/^http:\/\//"><?php echo L('http')?></option>

修改为

<option value="/^http(s?):\/\//"><?php echo L('http')?></option>

----------------------------------------------------------------

/phpcms/modules/member/templates/member_modelfield_edit.tpl.php找到 $(function()

行98

<option value="/^http:\/\//"><?php echo L('http')?></option>

修改为

<option value="/^http(s?):\/\//"><?php echo L('http')?></option>

----------------------------------------------------------------

phpcms/modules/admin/templates/setting.tpl.php找到

行18

http:\/\/(.+)[^/]$

修改为

http[s]?:\/\/(.+)[^/]$

----------------------------------------------------------------

phpcms/modules/link/index.php  找到

大约41行和51行中的正则

/http:\/\/(.*)/i

修改为

/^http[s]?:\/\/(.*)/i

------------------------------qtool----------------------------

/phpsso_server/phpcms/modules/admin/applications.php找到函数 

行148

$appurl = !empty($applist[$appid]['ip']) ? 'http://'.$applist[$appid]['ip'].'/api/' : $applist[$appid]['url'];

修改为

$appurl = !empty($applist[$appid]['ip']) ? 'http(s?)://'.$applist[$appid]['ip'].'/api/' : $applist[$appid]['url'];

---------------------------qtool.net---------------------------

/phpcms/modules/member/classes/client.class.php找到函数 ps_post

行361

$port = !empty($matches['port']) ? $matches['port'] : 80;

修改为

$transports = '';

if($matches['scheme'] == 'https') {

   $transports = 'ssl://';

   $port = !empty($matches['port']) ? $matches['port'] : 443;

} else {

   $transports = 'tcp://';

   $port = !empty($matches['port']) ? $matches['port'] : 80;

}

根据以上方法将phpcms源代码修改完成之后,还需要我们开启服务器中的openssl

这里以win+apache服务器运行环境为例,我们可以打开PHP的目录,修改php配置文件php.ini,将“extension=php_openssl.dll”前面的;分号去除

然后复制php安装目录下的libeay32.dll、ssleay32.dll、php_openssl.dll文件到c盘的windows/system32文件

重启apache服务器即可。

以上就是较为完整全面的将phpcms程序修改为支持https协议的方法.

TAG标签:phpcms
此文章由QTOOL.NET编辑
最新文章

热门标签