程序员人生 网站导航

完美解决Phpcms2008二级域名问题

栏目:DedeCMS时间:2013-10-21 14:33:51

  一、系统管理-模型管理-如新闻-修改-内容页URL规则-选择第二项“it/product/2006/1010/1_2.html”

  解释:phpcms2008默认把文件生成在根目录(是二级域名没有解决好所以才这样的吧?),选第二项把文件生成在栏目(频道),就是让文章跟随栏目(频道)。这时的url是www.phpcms.cn/news/world/2009/0418/123.html ,虽然文章已经跟随栏目(频道),但url不是二级域名的。那把www.phpcms.cn/news替换为news.phpcms.cn。请看第二步。

  二、编辑include/admin/content.class.php

  在第111、165行之下分别加入 复制内容到剪贴板 代码:

  

以下为引用的内容:
$r = $this->db->get_one("SELECT * FROM `$this->table` AS a JOIN `$this->table_category` AS b ON a.catid=b.catid WHERE `contentid`=$contentid $this->userid_sql");

  解释:准备从category表调用二级域名+子栏目名。

  替换第118行为 复制内容到剪贴板 代码:

  

以下为引用的内容:
$url = $r['url'].str_replace($r['parentdir'].$r['catdir'].'/', '', $this->url->show($contentid, 0, $systeminfo['catid'], $systeminfo['inputtime'], $data['prefix']));

  替换第172行为 复制内容到剪贴板 代码:

  

以下为引用的内容:
$systeminfo['url'] = $r['url'].str_replace($r['parentdir'].$r['catdir'].'/', '', $this->url->show($contentid, 0, 0, 0, $data['prefix']));

  解释:过滤原来的url中的父目录(二级域名的目录)和子栏目目录,并在前面加上二级域名+子栏目名,否则url变成news.phpcms.cn/world/news/world/2009/0418/123.html,红色部分是多余的,必须过滤掉。

  至此,文章已经生成在栏目(频道)目录,并且url是我们想要的news.phpcms.cn/world/2009/0418/123.html。完工了吗?没有。因为当我们更新URL的时候,地址又变回原来的一级域名url,这不是我们想要的。那看第三步。

  三、编辑admin/url.inc.php

  在第73行之下加入 复制内容到剪贴板 代码:

以下为引用的内容:
$r = $db->get_one("SELECT * FROM `".DB_PRE."content` AS a JOIN `".DB_PRE."category` AS b ON a.catid=b.catid WHERE `contentid`=".$r['contentid']."");
$url = $r['url'].str_replace($r['parentdir'].$r['catdir'].'/', '', $url);

  至此,二级域名完美解决。以上在phpcms2008的20090325版本上测试通过,其他版本请参照修改。

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐