Apache開啟URL重寫(xiě)功能(néng)方法
1、關於rewrite模塊的(de)調用:
Apache 2.x 中URL重寫,是(shì)通過mod_rewrite.so 來實現的,所以您要查看您的Apache 是否已經被編譯進去(qù)這個模塊了,並且在Apache的配置文件httpd.conf 中已經調用了這個(gè)模塊。在大(dà)多數主(zhǔ)流發行版中,Apache 2.x 是把rewrite模塊已(yǐ)經編入進去了。比如我用的是Slackware。Apache 2.x的配置文件,放(fàng)在 /etc/httpd 目錄下。
在 httpd.conf 中,我(wǒ)們會發現類似如下的一(yī)行,是有關rewrite模塊的,模塊名是 mod_rewrite.so 。
LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so
或
LoadModule rewrite_module lib/apache2/modules/mod_rewrite.so 如果(guǒ)前麵有#號,您要去(qù)掉。對於大(dà)多(duō)數發行版來說,Apache 2的(de)模塊一般是位於如下的兩個(gè)位置
/usr/lib/apache2/modules
或
/usr/lib/httpd/modules 如果在(zài)httpd中打開調用rewrite_module的設置,查看一下是不是能調(diào)用了,要通過 httpd -M的參數來查看;
#/usr/sbin/httpd -M
如果發現有如下一行,說明模塊已經能(néng)被調用了
rewrite_module (shared)
2、設置DocumentRoot的Directory:
在Apache 2.x 中,我們(men)會(huì)看到 DocumentRoot設置的一行。這行就是存放網頁程序的地方。比如LinuxSir.Org 存放在 /opt/www 目錄中(zhōng)。那麽我們(men)就要設置 DocumentRoot為如下的。
DocumentRoot "/opt/www" 然後我們再還(hái)要對 DocumentRoot做針對性的行為(wéi)設置。在一般的情況下,httpd.conf 會給一(yī)個默認的。如果你要改 DocumentRoot的路徑,同時也要改(gǎi)針對DocumentRoot的Directory的設置,也就是
<Directory "DocumentRoot所設置的路徑">
比如我們把DocumentRoot的路徑改為了 "/opt/www",那我們也要把Directory做(zuò)針對性的行為設置也要改(gǎi)成這個路(lù)徑(jìng)。
<Directory "/opt/www">
Options FollowSymLinks
#AllowOverride None 注:把這行前(qián)麵加#號,然後加下麵的一行 ,也就是 AllowOverride ALL
AllowOverride ALL
Order allow,deny
Allow from all
</Directory> 我們把AllowOverride 的參數設置為ALL,表(biǎo)示整台服務器上的,都支持URL規則重寫。Apache 服務器(qì)要讀每個網站根目錄(lù)下的 .htaccess 文件。如果沒(méi)有這(zhè)個文件,或者(zhě)這個文檔沒有定義任何(hé)關於(yú)URL重(chóng)寫(xiě)的規則,則不會有任何效果。在一般的情況下,成熟的Web 服務器應用套件,都支(zhī)持URL重寫的(de),比如drupal和joomla 。當(dāng)我們用這些(xiē)程序時,會發現在(zài)安裝包中有 .htaccess中有這個文件。我們把Apache配置好後,隻是需(xū)要在這些程序的後台打開此功能就行了。
3、重啟httpd服務器:
在一般情(qíng)況下(xià),在各個發行版中,都有(yǒu)httpd服務(wù)器啟動腳本,比如
# /etc/rc.d/rc.httpd restart 注:Slackware Linux
# /etc/init.d/apache2 restart 注:ubuntu、Debian 等;
# /etc/init.d/httpd start 注:Fedora 、Redhat、CentOS
關(guān)鍵詞:Apache,URL重寫
閱讀本文後您有什麽感想(xiǎng)? 已有(yǒu) 人給(gěi)出評價!
- 0
- 0
- 0
- 0
- 0
- 0