要使用 mod_rewrite 模組在Ubuntu中是非常容易的,如果安裝 Ubuntu 時有順便裝 LAMP,那其實 mod_rewrite 就已經編譯好了,只需要將它載入即可。

所有可載入的模組和設定可以在 /etc/apache2/mods-available 找到,之後只要作個 Link 到 mods-enabled 目錄即可使用。
但是不需要這麼麻煩,因為有 a2enmod、a2dismod、a2ensite、a2dissite,這些指令可以更方便的載入、關閉模組,例如想要開啟 rewrite 只要鍵入:

sudo a2enmod rewrite
sudo /etc/init.d/apache2 restart

修改 AllowOverride


如果要改預設網頁 /var/www

不改就讀不到.htaccess

/etc/apache2/sites-enabled/000-default

把AllowOverride none 改成 all


將 mods-available/rewrite.load 做一連結到 mods-enabled

ln  /etc/apache2/mods-available/rewrite.load  /etc/apache2/mods-enabled/rewrite.load

針對要有rewrite功能的目錄,於 mods-enabled/rewrite.conf(若rewrite.conf不存在請自行建立) 做以下設定

AllowOverride  all
Order  allow,deny
Allow  from  all



AllowOverride  all
Order  allow,deny
Allow  from  all

再來自己架設的貼以下這一段

各discuz 後台都有規則自己去找需要的貼吧

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 ^(.*)/([a-z]+)-(.+)\.html$ $1/$2.php?rewrite=$3&%1
, , , , , ,
創作者介紹

宇若彎彎

周宇若 發表在 痞客邦 PIXNET 留言(0) 人氣()