在Windows下,我們一般使用的是Administrator帳號,所以啟用這兩個項目非常簡單:
#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
中,這樣比較清晰容易管理。
完成上訴步驟後,在Wordpress的固定連結中使用除預設外的連結設置,Wordpress會直接在其安裝目錄中產生對應的.htaccess,這樣就可以使用設定的連結形式了。
在Mac OS X中一般不使用root
帳號,而是透過sudo
來取得root
相關權限。一般情況下,我們把網站檔案放在個人目錄下,例如~/Sites
,這樣就牽涉到Mac OS的權限管理,相對於Windows來說複雜不少。
#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
cd ~/Sites/Wordpress
touch .htaccess
chmod 777 .htaccess
新建檔案的權限預設是644
,透過ls -l .htaccess
就可以看到,此時程式無法自動寫入.htaccess,這種情況比較安全,但需要手動寫入。
sudo apachectl restart
完成上述設定後,就可以使用Wordpress的固定連結功能了。要注意的是,如果.htaccess是從Windows下直接複製過來,則日誌中可能會出現</IfModule> without matching <IfModule> section
的報錯。簡單的解決方案就是新建文件,重新複製貼上。
原文: http://dancewithnet.com/2010/05/29/making-mod-rewrite-and-htaccess-work-on-mac-os-x/