【道勤網(wǎng)】- bmrsportswear.com 軟件視頻自學(xué)教程|免費教程|自學(xué)電腦|3D教程|平面教程|影視動畫教程|辦公教程|機(jī)械設(shè)計教程|網(wǎng)站設(shè)計教程!【道勤網(wǎng)】

標(biāo)題: 訪問門戶頻道綁定的域名仍跳轉(zhuǎn)到默認(rèn)域名下的分析 [打印本頁]

作者: discuz美化    時間: 2015-2-19 16:19
標(biāo)題: 訪問門戶頻道綁定的域名仍跳轉(zhuǎn)到默認(rèn)域名下的分析
問題描述:
已在后臺->門戶->頻道欄目下設(shè)置某個一級欄目的綁定域名,但是訪問此域名,仍會跳轉(zhuǎn)到門戶域名下的頻道地址上。
如后臺設(shè)置的新聞頻道的綁定域名為news.moke8.com,設(shè)置的默認(rèn)域名為www.moke8.com,訪問news.moke8.com會302跳轉(zhuǎn)到www.moke8.com/portal.php?mod=list&catid=x 的地址(www.moke8.com為門戶域名,x為新聞頻道的ID)。

原因:
綁定的域名生效同時還需要設(shè)置頻道的目錄名稱,否則仍會跳轉(zhuǎn)到門戶域名下的頻道地址。

代碼分析:
在cache_portalcategory.php文件中的build_cache_portalcategory函數(shù)中,
  1. $domain = $_G['setting']['domain'];
  2. //$_G['setting']['domain']為后臺->全局->域名設(shè)置下設(shè)置的域名,為數(shù)組。
  3. $channelrootdomain = !empty($domain['root']) && !empty($domain['root']['channel']) ? $domain['root']['channel'] : '';
  4. //$channelrootdomain為頻道根域名,如果沒有設(shè)置頻道根域名則為空。
  5. $portaldomain = '';
  6. if(!empty($domain['app']['portal'])) {
  7.         $portaldomain = 'http://'.$domain['app']['portal'].$_G['siteroot'];
  8. } elseif(!empty($domain['app']['default'])) {
  9.         $portaldomain = 'http://'.$domain['app']['default'].$_G['siteroot'];
  10. } else {
  11.         $portaldomain = $_G['siteurl'];
  12. }
  13. //$portaldomain為門戶域名
  14. //$domain['app']['default']為應(yīng)用域名下的門戶域名
  15. //$domain['app']['default']為應(yīng)用域名下的默認(rèn)域名
  16. //$_G['siteurl']為站點url
復(fù)制代碼


  1. if($channelrootdomain && $data[$topid]['domain']){
  2. //如果存在頻道根域名,同時設(shè)置該頻道欄目綁定了域名
  3.         $url = 'http://'.$data[$topid]['domain'].'.'.$channelrootdomain.'/';
  4.         //設(shè)置該頻道欄目的url為http://頻道欄目綁定的域名.頻道根域名/
  5.         if($foldername) {
  6.         //如果設(shè)置了頻道的目錄名稱
  7.                 if(!empty($value['upid'])) {
  8.                 //如果存在父級分類
  9.                         $url .= $foldername;
  10.                         //設(shè)置該頻道欄目的url為http://頻道欄目綁定的域名.頻道根域名/頻道的目錄名稱
  11.                 }
  12.         } else {
  13.                 $url = $portaldomain.'portal.php?mod=list&catid='.$key;
  14.                 //沒有設(shè)置頻道的目錄名稱的話,設(shè)置該頻道欄目的url為門戶域名.poral.php?mod=list&catid=x(x為該頻道欄目ID)
  15.                 //從這里可以看出來,如果僅設(shè)置了頻道域名而沒有設(shè)置頻道的目錄名稱,則頻道欄目的url還是會使用門戶域名而非頻道欄目綁定的域名
  16.         }
  17. } elseif ($foldername) {
  18. //沒有設(shè)置頻道根域名,但是設(shè)置了頻道的目錄名稱
  19.         $url = $portaldomain.$foldername;
  20.         //設(shè)置該頻道欄目的url為門戶域名.頻道的目錄名稱
  21.         if(substr($url, -1, 1) != '/') $url.= '/';
  22. } else {
  23. //沒有設(shè)置頻道根域名,沒有設(shè)置頻道的目錄名稱
  24.         $url = $portaldomain.'portal.php?mod=list&catid='.$key;
  25.         //設(shè)置該頻道欄目的url為門戶域名.portal.php?mod=list&catid=x(x為該頻道欄目ID)
  26. }
復(fù)制代碼







歡迎光臨 【道勤網(wǎng)】- bmrsportswear.com 軟件視頻自學(xué)教程|免費教程|自學(xué)電腦|3D教程|平面教程|影視動畫教程|辦公教程|機(jī)械設(shè)計教程|網(wǎng)站設(shè)計教程!【道勤網(wǎng)】 (http://bmrsportswear.com/) Powered by Discuz! X3.4