phpcms怎么把绝对路径改成相对路径

我们知道phpcms是使用绝对路径来存储图片,css,js等文件的,路径中带有域名,这样换域名不太方便,而且不能绑定多个域名。
那么如何把绝对路径改为相对路径呢?
一、网站还没安装的情况下
找到install/install.php,大概在15行找到

$siteurl = substr(get_url(),0,$pos);

改成

$siteurl = '/';

二、网站已经安装的情况下
1.首先在后台-设置-站点管理,把站点域名改成"/"


在打开的窗口中将站点域名一栏修改为 / ,当然我们如果直接修改的话会出现如下错误提示
我们需要将 phpcms/modules/admin/site.php 文件的 第45行到47行以及第128行到130行的这段判断代码注释掉

if (!empty($domain) && !preg_match('/http:\/\/(.+)\/$/i', $domain)) {
      showmessage(L('site_domain').L('site_domain_ex2'));
}

将phpcms/modules/admin/templates/site_add.tpl.php文件的第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')?>"});

将phpcms/modules/admin/templates/site_edit.tpl.php文件的第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')?>"});

修改完上面的之后,就可以将站点域名修改为 / 了。

2.打开caches/configs/system.php,使用批量替换将其中所有的 http://www.aaa.com 替换为空即可
替换前:

替换后:

3.登录phpmyadmin把数据库导出,用代码编辑器打开导出的数据库sql文件,把域名 http://www.aaa.com 批量替换成空,然后再把数据库重新导入
完成上述操作之后,就把绝对路径改成了相对路径

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: