Apache版本不同、作業系統不同,其設定檔命名、設定管理方式也常不同,例如安裝目錄可能是httpd,也可能是apache2,設定檔名稱及載入模組方式也常不同,或許對apache官方而言是有規律的,但畢竟我們大部分用戶都不是網管,沒事整天配置apache,都是現用現找資料, 一般兩個文件路徑不對往往就火大了。進入正題。
Apache預設Rewrite功能是禁用的,但是其Rewrite模組是載入的,所以,我們也不要只忙著寫.htaccess文件,總是不生效,先檢查一下我們的apache是否已經識別我們的.htacess。
一、檢查確認Rewrite模組載入
本文測試是在CentOS 6系統上,路徑為:/etc/httpd/conf/httpd.conf
LoadModule rewrite_module modules/mod_rewrite.so
如果前面有註解就去,重啟APACHE。
如果使用系統自帶指令安裝,如yum install或apt-get install,在httpd.conf/apache2.conf下找不到
LoadModule rewrite_module modules/mod_rewrite.so
這一行,可以參考下面的設定來載入Rewrite模組:
在終端終端終端中執行
sudo a2enmod rewrite
指令後,即啟用了Mod_rewrite 模組。
另外,也可以透過將 /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
二、檢查確認目錄Rewrite打開
Rewrite庫載入不代表我們的.htaccess檔就能生效,還需要專門開啟指定目錄的AllowOveride開關,腳本如下:
<Directory /var/www/> Options Indexes FollowSymLinks AllowOverride All Order allow,deny Allow from all </Directory>
其中AllowOverride能定義在Directory這個Section裡,具體用法可參考apache官方說明(下文連結),以上腳本一般放在httpd.conf或/etc/httpd/conf.d/vhost.conf下面,盡量更網站設定的:
定義在一起,方便維護。
三、測試Rewrite功能
以下為.htaccess測試實例:
# BEGIN <IfModule mod_rewrite.c> RewriteEngine on RewriteBase / RewriteRule .*$ </IfModule> #END
測試方法,拷貝保存為.htaccess,上傳到網站根目錄下,訪問網站任何路徑頁面,均會跳到本博客,說明Rewrite已生效。
相關文章:
windows伺服器下iis5D(DJrew)