Apache下使用rewrite實現discuz僞靜態的配置

Apache下使用rewrite實現discuz僞靜態的配置

1、僞靜態簡介及作用

僞靜態是相對真實靜態來講的,通常我們爲了增強搜索引擎的友好面,都將文章內容生成靜態頁面,但是有的朋友爲了實時的顯示一些信息。或者還想運用動態腳本解決一些問題。不能用靜態的方式來展示網站內容。但是這就損失了對搜索引擎的友好面。怎麼樣在兩者之間找個中間方法呢,這就產生了僞靜態技術。就是展示出來的是以html一類的靜態頁面形式,但其實是用ASP或PHP之類的動態腳本來處理的。

2rewrite實現discuz僞靜態的配置步驟

1)配置步驟文字說明

首先登陸discuz後臺管理,進入“管理中心”>“全局”>“優化配置”>“搜索引擎優化(SEO設置)”,再把URL地址想靜態化的頁面列表地方勾選,然後點擊提交。

2)詳細實現步驟如下

 1、進入管理中心

image.png

2、輸入用戶名的密碼,然後提交。

image.png

3、上面輸入密碼後進入下面的界面,點擊全局>SEO設置。

image.png

4、把URL地址想靜態化的頁面列表地方勾選,然後點擊提交。

image.png

5、上面設置完成之後,點擊“查看當前的 Rewrite 規則

image.png

6、上面點擊查看當前的rewrite規則後,會出現下面的頁面,把對應的用戶規則複製進Apache網頁服務的配置文件,然後重啓服務即可實現動態頁面轉僞靜態的配置。

3Apache服務獨立主機用戶使用rewrite配置僞靜態

修改Apache的主配置文件,在配置文件中添加如下內容

vim /usr/local/apache2/conf/httpd.conf

<IfModule mod_rewrite.c>

    RewriteEngine On

    RewriteCond %{QUERY_STRING} ^(.*)$

    RewriteRule ^(.*)/topic-(.+)\.html$ $1/portal.php?mod=topic&topic=$2&%1

    RewriteCond %{QUERY_STRING} ^(.*)$

    RewriteRule ^(.*)/article-([0-9]+)-([0-9]+)\.html$ $1/portal.php?mod=view&aid=$2&page=$3&%1

    RewriteCond %{QUERY_STRING} ^(.*)$

    RewriteRule ^(.*)/forum-(\w+)-([0-9]+)\.html$ $1/forum.php?mod=forumdisplay&fid=$2&page=$3&%1

    RewriteCond %{QUERY_STRING} ^(.*)$

    RewriteRule ^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ $1/forum.php?mod=viewthread&tid=$2&extra=page\%3D$4&page=$3&%1

    RewriteCond %{QUERY_STRING} ^(.*)$

    RewriteRule ^(.*)/group-([0-9]+)-([0-9]+)\.html$ $1/forum.php?mod=group&fid=$2&page=$3&%1

    RewriteCond %{QUERY_STRING} ^(.*)$

    RewriteRule ^(.*)/space-(username|uid)-(.+)\.html$ $1/home.php?mod=space&$2=$3&%1

    RewriteCond %{QUERY_STRING} ^(.*)$

    RewriteRule ^(.*)/blog-([0-9]+)-([0-9]+)\.html$ $1/home.php?mod=space&uid=$2&do=blog&id=$3&%1

    RewriteCond %{QUERY_STRING} ^(.*)$

    RewriteRule ^(.*)/(fid|tid)-([0-9]+)\.html$ $1/archiver/index.php?action=$2&value=$3&%1

    RewriteCond %{QUERY_STRING} ^(.*)$

    RewriteRule ^(.*)/([a-z]+[a-z0-9_]*)-([a-z0-9_\-]+)\.html$ $1/plugin.php?id=$2:$3&%1

</IfModule>

4Apache虛擬主機用戶使用rewrite配置僞靜態

修改Apache虛擬主機的配置文件,在配置文件中添加如下內容

vim /usr/local/apache2/conf/extra/httpd-vhosts.conf

# 將 RewriteEngine 模式打開

RewriteEngine On

 

# 修改以下語句中的 /discuz 爲您的論壇目錄地址,如果程序放在根目錄中,請將 /discuz 修改爲 /

RewriteBase /discuz

 

# Rewrite 系統規則請勿修改

RewriteCond %{QUERY_STRING} ^(.*)$

RewriteRule ^topic-(.+)\.html$ portal.php?mod=topic&topic=$1&%1

RewriteCond %{QUERY_STRING} ^(.*)$

RewriteRule ^article-([0-9]+)-([0-9]+)\.html$ portal.php?mod=view&aid=$1&page=$2&%1

RewriteCond %{QUERY_STRING} ^(.*)$

RewriteRule ^forum-(\w+)-([0-9]+)\.html$ forum.php?mod=forumdisplay&fid=$1&page=$2&%1

RewriteCond %{QUERY_STRING} ^(.*)$

RewriteRule ^thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ forum.php?mod=viewthread&tid=$1&extra=page\%3D$3&page=$2&%1

RewriteCond %{QUERY_STRING} ^(.*)$

RewriteRule ^group-([0-9]+)-([0-9]+)\.html$ forum.php?mod=group&fid=$1&page=$2&%1

RewriteCond %{QUERY_STRING} ^(.*)$

RewriteRule ^space-(username|uid)-(.+)\.html$ home.php?mod=space&$1=$2&%1

RewriteCond %{QUERY_STRING} ^(.*)$

RewriteRule ^blog-([0-9]+)-([0-9]+)\.html$ home.php?mod=space&uid=$1&do=blog&id=$2&%1

RewriteCond %{QUERY_STRING} ^(.*)$

RewriteRule ^(fid|tid)-([0-9]+)\.html$ archiver/index.php?action=$1&value=$2&%1

RewriteCond %{QUERY_STRING} ^(.*)$

RewriteRule ^([a-z]+[a-z0-9_]*)-([a-z0-9_\-]+)\.html$ plugin.php?id=$1:$2&%1


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章