超详细DEDECMS多站点配置教程(新手向)

什么是多站点设置

织梦多站点设置简单来讲,就是将网站上的某个目录做为一个域名的根目录,有两种状况:
第一种是将一级栏目做为二级域名的根目录,则一级栏目下面的子栏目必需要在这个一级栏目目录的下面;
第二种是将非栏目目录做为二级域名的根目录,好比手机站 m.xxx.com

废话很少说直接上步骤

第一步:在 系统基本参数 =》 核心设置 =》 开启多站点支持,截图以下:php

第一步

第二步:将要绑定二级域名的栏目设为频道,栏目保存目录也要注意一下,通常设置成一级目录目录,好比我这里设置的是根目录下面的heli。注意:子栏目的保存路径必定要在这个目录的下面,截图以下:web

第二步

第三步:切换到高级选项卡,启动二级域名,并设置对应的二级域名正则表达式

第三步

第四步:设置二级域名,以西部数码为例,截图以下:
在这里插入图片描述
      进去以后点击添加
第四步
      好比我上面设置的heli目录, 只须要把域名绑定到heli这个目录就OK。也就是点目录选择,找到heli这个目录svg

第五步:修改程序文件/include/helpers/channelunit.helper.php;在函数function GetFileUrl中,修改第73行:函数

1	if($moresite==1)
2	{
3	$articleUrl = preg_replace("/^".$sitepath.'/', '', $articleUrl);
4	}

       在路径正则表达式把斜杠/换成分号’,修改后以下:post

1	if($moresite==1)
2	{
3	$articleUrl = preg_replace("'^".$sitepath."'",'',$articleUrl);
4	}

      同理修改第260行左右的程序:网站

1	if($GLOBALS['cfg_multi_site']=='Y')
2	{
3	if($siteurl=='') {
4	$siteurl = $GLOBALS['cfg_basehost'];
5	}
6	if($moresite==1 ) {
7	$reurl = preg_replace("/^".$sitepath."/", '', $reurl);

      将以上最后一句代码修改成:url

1	$reurl  = preg_replace("'^".$sitepath."'",'', $reurl);

      这样修改后,就能够生成正确的二级域名文件路径了。
最后一步:由于开启多站点以后会启用绝对路径,因此里面的图片路径会出问题,因此还须要修改文件,步骤以下:code

找到 \include\dialog\select_images_post.php 第108行
$fileurl = $activepath.'/'.$filename;
换成: 
$fileurl = $cfg_cmsurl.$activepath.'/'.$filename; 
修改目录include下的文件extend.func.php,在最后面添加一个函数方法 
复制代码
function replaceurl($newurl) { $newurl=str_replace('src="/uploads/','src="'.{$GLOBALS['cfg_basehost']}.'/uploads/',$newurl); return $newurl; }
另外调用文章正文内容的标签{dede:field.body/} 
替换成:{dede:field.body function='replaceurl(@me)'/}