在UBUNTU系統中要啟用mod_rewrite的方法有兩種:
第一種: 在終端中執行 sudo a2enmod rewrite 指令后,即啟用了 Mod_rewrite 模塊, apache2服務器的模塊啟用方法就和虛擬主機的同IP多域名的啟用方法一樣, 所有的模塊都在/etc/mods-available/文件夾下, a2enmod rewrite 這個命令其實就是把該模塊名鏈接到/etc/apache2/mods-enabled/文件夾下, 如圖(命令: ls -la /etc/apache2/mods-enabled/)
打開這個模塊文件(/etc/apache2/mods-enabled/rewrite.load)看一下:
看到這里,相信大家都感覺很熟悉吧? 原來它也是定義一個路徑而已, 它真正的文件是這個:/usr/lib/apache2/modules/mod_rewrite.so, 你去看一下, 發現都是亂碼, 不用管它, 可以用就行了;
第二種: 也可以通過將 /etc/apache2/mods-available/rewrite.load 連接到 /etc/apache2/mods-enabled/rewrite.load 來打開 Mod_rewrite 模塊。其命令是: sudo ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load
一點小提示 事實上,當我在 Ubuntu 中采用上述做法並重啟了 Apache 服務后,仍然無法正常 rewrite 網址。
這里,還有一點需要注意的地方: sudo vim /etc/apache2/sites-enabled/000-default 將其中的: AllowOverride None 修改為: AllowOverride All 上面的 /etc/apache2/sites-enabled/000-default 實則為 /etc/apache2/sites-available/default 的連接。而 AllowwOverride None 則會完全忽略 .htaccess 文件,自然其中所定義的 rewrite 規則也就不能生效了。 最后,別忘了使用下列指令來重啟 Apache:
$sudo /etc/init.d/apache2 restart
或者通過以下的命令:
#service apache2 restart (推薦使用此種方法來重啟apache2)
source: http://hi.baidu.com/tonny_dxf/item/7701781b30cca15bf0090e50