Apache下使用rewrite實現discuz僞靜態的配置
1、僞靜態簡介及作用
僞靜態是相對真實靜態來講的,通常我們爲了增強搜索引擎的友好面,都將文章內容生成靜態頁面,但是有的朋友爲了實時的顯示一些信息。或者還想運用動態腳本解決一些問題。不能用靜態的方式來展示網站內容。但是這就損失了對搜索引擎的友好面。怎麼樣在兩者之間找個中間方法呢,這就產生了僞靜態技術。就是展示出來的是以html一類的靜態頁面形式,但其實是用ASP或PHP之類的動態腳本來處理的。
2、rewrite實現discuz僞靜態的配置步驟
(1)配置步驟文字說明
首先登陸discuz後臺管理,進入“管理中心”>“全局”>“優化配置”>“搜索引擎優化(SEO設置)”,再把URL地址想靜態化的頁面列表地方勾選,然後點擊提交。
(2)詳細實現步驟如下
1、進入管理中心
2、輸入用戶名的密碼,然後提交。
3、上面輸入密碼後進入下面的界面,點擊全局>SEO設置。
4、把URL地址想靜態化的頁面列表地方勾選,然後點擊提交。
5、上面設置完成之後,點擊“查看當前的 Rewrite 規則”
6、上面點擊查看當前的rewrite規則後,會出現下面的頁面,把對應的用戶規則複製進Apache網頁服務的配置文件,然後重啓服務即可實現動態頁面轉僞靜態的配置。
(3)Apache服務獨立主機用戶使用rewrite配置僞靜態
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>
(4)Apache虛擬主機用戶使用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