discuz論壇Apache Rewrite實現URL重寫的配置方法

配置步驟

第一步:找到apache的配置文件httpd.conf(文件在conf目錄下)

第二步:你首先必須得讓服務器支持mod_rewrite,如果你使用的是虛擬主機,請事先詢問你的主機提供商。

  打開httpd.conf,找到

  #LoadModule rewrite_module modules/mod_rewrite.so

  把#去掉

  找到AllowOverride None 改成 AllowOverride All

  :AllowOverride 的參數設置爲ALL,表示整臺服務器上都支持URL規則重寫。Apache 服務器要讀每個網站下目錄下的 .htaccess 文件。如果沒有這個文件,或者這個文檔沒有定義任何關於URL重寫的規則就不會有任何效果。

  對於不同的網址,需要在APACHE中增加如下內容

  <Directory “E:/Apache Group/Apache2/htdocs/myweb”>

  /*引號裏E:/Apache Group/Apache2/htdocs/myweb代表你的web存放目錄*/

  /*如果是Linux,只要你定位到你網站目錄即可*/
   Options FollowSymLinks
   AllowOverride None

  </Directory>

第三步:將Rewrite 配置規則加入到httpd.conf文件裏(以下代碼)

Apache Web Server(獨立主機用戶):
<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/index.php?action=$2&value=$3&%1
</IfModule>

第四步:新建一個文件.htaccess ,然後把如下代碼複製進去保存好:
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^topic-(.+)\.html$ portal.php?mod=topic&topicid=$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 ^archiver/(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

注意:
1 .htaccess文件放在你的網站根目錄,在windows操作系統下若無法創建,可以這樣去弄出來,找到一個現成的文件或者隨便打開一個文本文件,然後另存爲,文件名取:.htaccess 就可以了。
2 RewriteBase / 這句意思是門戶網站所存放的目錄,如果你放在網站根目錄下 請保持不變,如果是別的目錄,比如我放在bbs目錄下,請修改成RewriteBase /bbs ,改了以後僞靜態成功,否則失敗。

第五步:重啓apache,在discuz後臺開啓url靜態功能

發佈了17 篇原創文章 · 獲贊 6 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章