Discuz使用筆記(一)

來源:互聯網
上載者:User

正常化目錄

正常化目錄即為URL後面添加斜杠/ 

如輸入http://www.cnblogs.com/jaywoo 自動添加/轉換成 http://www.cnblogs.com/jaywoo/

之前用ISAPI_Rewrite在IIS中偽靜態 不正常化目錄也不會出現連結錯誤(為了SEO一般是範化目錄的 規則為:RewriteRule ^/([^.]+[^/]$) /$1/ [L,R] ),

但在Apache中卻是串連錯誤的,所以需要解決的。解決思路有兩種

1.寫兩個重寫規則 一個加/的 一個不加/  這種方法不可取的 因為需要為多個目錄編寫

2.自動添加/ 正常化目錄

Apache正常化目錄網上說在Windows中會自動正常化的 但我發現卻不是自動正常化的 可能是我配置有問題吧。

度娘說正常化目錄是:RewriteRule ^(.+[^/])$ $1/ [R] 但我發現沒有用 於是就自己寫一條規則:RewriteRule ^(\w+)$ $1/ [R]

 

靜態版塊目錄化和貼子目錄化

現在網站一般都採用扁平的樹型網狀結構 即目錄式導航

如:http://www.cnblogs.com/daimage/archive/2012/02/25/2367534.html 

如何在Discuz中使用目錄式導航呢?

一、 修改source\function下的function_core.php

找到

if($type == 'forum_forumdisplay') {
list(,,, $fid, $page, $extra) = func_get_args();
$r = array(
'{fid}' => empty($_G['setting']['forumkeys'][$fid]) ? $fid : $_G['setting']['forumkeys'][$fid],
'{page}' => $page ? $page : 1,
);
} elseif($type == 'forum_viewthread') {
list(,,, $tid, $page, $prevpage, $extra) = func_get_args();
$r = array(
'{tid}' => $tid,
'{page}' => $page ? $page : 1,
'{prevpage}' => $prevpage && !IS_ROBOT ? $prevpage : 1,
);

改為

if($type == 'forum_forumdisplay') {
list(,,, $fid, $page, $extra) = func_get_args();
$r = array(
'{fid}' => empty($_G['setting']['forumkeys'][$fid]) ? $fid : $_G['setting']['forumkeys'][$fid],
'{page}' => $page ,
);
} elseif($type == 'forum_viewthread') {
list(,,, $tid, $page, $prevpage, $extra) = func_get_args();
$fid = DB::result_first("SELECT fid FROM ".DB::table('forum_thread')." WHERE tid = '$tid'");
$r = array(
'{fid}' => empty($_G['setting']['forumkeys'][$fid]) ? $fid : $_G['setting']['forumkeys'][$fid],
'{tid}' => $tid,
'{page}' => $page ,
'{prevpage}' => $prevpage && !IS_ROBOT ? $prevpage : 1,
);

 

二、 在後台管理中->全域->Seo設定->靜態化URL (記得需要在修改function_core.php中代碼後再設定,否則可能會出現載入CSS,JS錯誤)

若設定成以下格式

     在"論壇主題列表頁"的格式中填寫:{fid}/{page}/
     在"論壇主題內容頁"的格式中填寫:{fid}/d{tid}/{page}

   則偽出來的URL則形式如下:

     論壇主題列表如:http://www.cnblogs.com/jaywoo  論壇文章頁則如:http://www.cnblogs.com/jaywoo/d123456 

 .htaccess檔案配置為:

 文章對應為:

RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule d([0-9]+)(/([0-9]+))?(/)?$ forum.php?mod=viewthread&tid=$1&extra=page\%3D$5&page=$3&%1 [L,NC]

主題對應為:

 

若設定成以下格式:

     在"論壇主題列表頁"的格式中填寫:{fid}/{page}/
     在"論壇主題內容頁"的格式中填寫:{fid}/{tid}{page}.html

則偽出來的URL則形式如下:

     論壇主題列表如:http://www.cnblogs.com/jaywoo  論壇文章頁則如:http://www.cnblogs.com/daimage/archive/2012/02/25/2367534.html 

主題對應為:

RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^(\w+)/$ forum.php?mod=forumdisplay&fid=$1&page={page}&%1 [L,NC]

文章對應為:

RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^archiver/(fid|tid)-([0-9]+)\.html$ archiver/index.php?action=$1&value=$2&%1 [L,NC]

  

作者:代碼哥
出處:http://daimage.cnblogs.com/
說明:本博原創文章著作權歸部落格園和本人共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出作者名稱和原文串連,否則保留追究法律責任的權利。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.