一、系統管理-模型管理-如新聞-修改-內容頁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版本上測試通過,其他版本請參照修改。