linux 開啓重寫的方法

Apache 2.x 中URL重寫,是通過mod_rewrite.so 來實現的,所以您要查看您的Apache 是否已經被編譯進去這個模塊了,並且在Apache的配置文件httpd.conf 中已經調用了這個模塊

Linux開啓url重寫的方法: 

1、打開 apache 裏httpd.conf(通常是在/etc/httpd/conf目錄裏) 

2、找到 #LoadModule rewrite_module modules/mod_rewrite.so 去掉前面的# 

3、找到 AllowOverride None 改成 AllowOverride All , 有兩個全部改掉 

注:AllowOverride 的參數設置爲ALL,表示整臺服務器上都支持URL規則重寫。Apache 服務器要讀每個網站下目錄下的 .htaccess 文件。如果沒有這個文件,或者這個文檔沒有定義任何關於URL重寫的規則就不會有任何效果。 

重啓apache (用命令:service httpd restart)。 

Apache開啓URL重寫功能方法詳細篇

1、關於rewrite模塊的調用: 
Apache 2.x 中URL重寫,是通過mod_rewrite.so 來實現的,所以您要查看您的Apache 是否已經被編譯進去這個模塊了,並且在Apache的配置文件httpd.conf 中已經調用了這個模塊。在大多數主流發行版中,Apache 2.x 是把rewrite模塊已經編入進去了。比如我用的是Slackware。Apache 2.x的配置文件,放在 /etc/httpd 目錄下。 

在 httpd.conf 中,我們會發現類似如下的一行,是有關rewrite模塊的,模塊名是 mod_rewrite.so 。 

LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so 
或 
LoadModule rewrite_module lib/apache2/modules/mod_rewrite.so 如果前面有#號,您要去掉。對於大多數發行版來說,Apache 2的模塊一般是位於如下的兩個位置 

/usr/lib/apache2/modules 

或 
/usr/lib/httpd/modules 如果在httpd中打開調用rewrite_module的設置,查看一下是不是能調用了,要通過 httpd -M的參數來查看; 

#/usr/sbin/httpd -M 

如果發現有如下一行,說明模塊已經能被調用了 

rewrite_module (shared) 

2、設置DocumentRoot的Directory: 


在Apache 2.x 中,我們會看到 DocumentRoot設置的一行。這行就是存放網頁程序的地方。比如LinuxSir.Org 存放在 /opt/www 目錄中。那麼我們就要設置 DocumentRoot爲如下的。 

DocumentRoot "/opt/www" 然後我們再還要對 DocumentRoot做針對性的行爲設置。在一般的情況下,httpd.conf 會給一個默認的。如果你要改 DocumentRoot的路徑,同時也要改針對DocumentRoot的Directory的設置,也就是 

<Directory "DocumentRoot所設置的路徑"> 

比如我們把DocumentRoot的路徑改爲了 "/opt/www",那我們也要把Directory做針對性的行爲設置也要改成這個路徑。 

<Directory "/opt/www"> 

Options FollowSymLinks 
#AllowOverride None 注:把這行前面加#號,然後加下面的一行 ,也就是 AllowOverride ALL 
AllowOverride ALL 
Order allow,deny 
Allow from all 
</Directory> 我們把AllowOverride 的參數設置爲ALL,表示整臺服務器上的,都支持URL規則重寫。Apache 服務器要讀每個網站根目錄下的 .htaccess 文件。如果沒有這個文件,或者這個文檔沒有定義任何關於URL重寫的規則,則不會有任何效果。在一般的情況下,成熟的Web 服務器應用套件,都支持URL重寫的,比如drupal和joomla 。當我們用這些程序時,會發現在安裝包中有 .htaccess中有這個文件。我們把Apache配置好後,只是需要在這些程序的後臺打開此功能就行了。 

3、重啓httpd服務器: 

在一般情況下,在各個發行版中,都有httpd服務器啓動腳本,比如 
# /etc/rc.d/rc.httpd restart 注:Slackware Linux 

# /etc/init.d/apache2 restart 注:ubuntu、Debian 等; 
# /etc/init.d/httpd start 注:Fedora 、Redhat、CentOS

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章