萬盛學電腦網

 萬盛學電腦網 >> 網頁制作 >> 交互設計 >> 啟用Mod Rewrite和.htaccess

啟用Mod Rewrite和.htaccess

Apache的Mode Rewrite模塊提供了一個基於正則表達式分析器的重寫引擎來實時重寫URL請求。在大多數情況下,它和.htaccess文件配合使用。比如本篇文章的URL(http://dancewithnet.com/2010/05/29/making-mod-rewrite-and-htaccess-work-on-mac-os-x)就是Wordpress配合Mod Rewrite模塊和.htaccess文件一起實現的,即所謂的固定鏈接(Permalinks)。

Windows

在Windows下,我們一般使用的是Administrator賬號,所以啟用這兩項非常簡單:

在[Apache安裝目錄]/conf/httpd.conf中找到#LoadModule rewrite_module modules/mod_rewrite.so,去掉前面的注釋符號#。如果沒有這行,請添加。並確認apache安裝目錄下的modules文件夾中是否有mod_rewrite.so這個文件。這樣就啟用了Mod Rewrite功能。

在[Apache安裝目錄]/conf/httpd.conf中找到

以下為引用的內容:

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>

把“AllowOverride None”改成“AllowOverride All”,這樣所有的文件夾都支持.htaccess了,或者針對指定的文件夾啟用.htaccess,可以在[Apache安裝目錄]/conf/httpd.conf中加入

以下為引用的內容:

<Directory "D:/sites/example/">
    Options Indexes FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

這種做法一般是和虛擬主機配置在一起的,所以大多數會把上述配置代碼寫入[Apache安裝目錄]/conf/extra/httpd-vhost.conf中,這樣比較清晰易於管理。

重啟Apache後,就ok了。

完成上訴步驟後,在Wordpress的固定鏈接中使用除默認外的鏈接設置,Wordpress會直接在其安裝目錄中生成對應的.htaccess,這樣就可以使用設置的鏈接形式了。

Mac OS X

在Mac OS X中一般不使用root賬號,而是通過sudo來獲得root相關權限。一般情況下,我們把網站文件放在個人目錄下,比如~/Sites,這樣就涉及到Mac OS的權限管理,相對於Windows來說復雜不少。

在終端運行sudo vi /etc/apache2/httpd.conf,找到#LoadModule rewrite_module modules/mod_rewrite.so,去掉前面的注釋符號#。

運行sudo vi /etc/apache2/extra/httpd-vhost.conf,加入

以下為引用的內容:

<Directory "/Users/[用戶名]/Sites">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

這樣整個~/Sites都可以支持.htaccess。

運行 sudo vi /Private/etc/apache2/users/[用戶名].conf,把其中的AllowOverride None改成AllowOverride All。需要注意的是,以前的Mac OS X版本,路徑可能是/private/etc/httpd/users/[用戶名].conf

在需要的目錄新建.htaccess,並修改其權限為777,此處依舊以使用Wordpress的固定鏈接為例。

以下為引用的內容:

cd ~/Sites/Wordpress
touch .htaccess
chmod 777 .htaccess

新建文件的權限默認是644,通過ls -l .htaccess就可以看到,此時程序無法自動寫入.htaccess,這種情況比較安全,但是需要手動寫入。

退出後重啟Apache:sudo apachectl restart

完成上述設置之後,就可以使用Wordpress的固定鏈接功能了。需要注意的是,如果.htaccess是從Windows下直接復制過來,日志中可能會出現《/IfModule》 without matching 《IfModule》 section的報錯。簡單的解決方案就是新建文件,重新復制粘貼。

copyright © 萬盛學電腦網 all rights reserved