mod_rewrite模組

admin發表於2018-07-19

.htaccess最重要的功能是實現URL重定向,比如URL靜態化、URL重定向或者防止盜鏈等。

上述強大的功能都是由mod_rewrite模組實現,下面對其做一下簡單介紹。

一.安裝和啟用mod_rewrite模組:

(1).安裝模組:

[Shell] 純文字檢視 複製程式碼
sudo a2enmod rewrite

(2).開啟httpd.conf的rewrite:

在[Apache安裝目錄]/conf/httpd.conf中找到如下程式碼:

[Shell] 純文字檢視 複製程式碼
#LoadModule rewrite_module modules/mod_rewrite.so

去掉前面的#即可開啟;如果沒有這一行程式碼,那麼手動新增。

特別說明:需要確保對應目錄下存在mod_rewrite.so。

在[Apache安裝目錄]/conf/httpd.conf中找到如下程式碼:

[Shell] 純文字檢視 複製程式碼
<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>

(1).將AllowOverride None”修改為“AllowOverride All實現所有資料夾都支援.htaccess。

(2).如果只允許特定資料夾支援.htaccess,可以在[Apache安裝目錄]/conf/httpd.conf新增如下程式碼:

[Shell] 純文字檢視 複製程式碼
<Directory "D:/antzone/softwhy/">
    Options Indexes FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

此方式通常用在虛擬主機中;便於管理,程式碼建議寫入[Apache安裝目錄]/conf/extra/httpd-vhost.conf中。

二.重寫程式碼演示:

[Shell] 純文字檢視 複製程式碼
<IfModule mod_rewrite.c>
 # Turn on rewrite engine
 Options +FollowSymlinks
 RewriteEngine on
 # More rules below
 ...
</IfModule>

上面是重寫程式碼格式演示,解釋如下:

(1).IfModule判斷Apache是否安裝了mod_rewrite模組。

(2).FollowSymlinks必須要啟用,rewrite引擎的安全需求。通常FollowSymlinks在Apache的主配置檔案中已經啟用,所以可以省略。

(3).RewriteEngine用於啟用rewrite引擎。

相關文章