結(jié)果點(diǎn)擊一個(gè)鏈接直接404 Not Found。悲劇,看來Apache的Rewrite部分有問題了,完全無視掉了.htaccess文件!經(jīng)過檢查Apache的模塊,發(fā)現(xiàn)Rewrite模塊是開啟的狀態(tài),看來是httpd.conf文件中的配置有點(diǎn)問題了。回想起之前在Ubuntu Server下配置Rewrite也是啟用了一個(gè)叫做“AllowOverride”的屬性為“All”才正確開啟了Rewrite,這次手動(dòng)配置VirtualHost的時(shí)候并沒有寫上這兩句,看來就是這個(gè)問題了。
立馬輸入 :
#vim /etc/httpd/conf/httpd.conf
找到自己的VirtualHost設(shè)置部分,添上
<Directory />
AllowOverride All
</Directory>
上面這段的Directory /的“/”為你的www路徑,如放在“/var/www/html”路徑下就寫為“<Directory /var/www/html>”,以此類推。保存后重啟httpd服務(wù):
#/etc/init.d/httpd restart
再次進(jìn)入WordPress,點(diǎn)擊一個(gè)鏈接,成了!問題解決??磥磉@個(gè)“AllowOverride”很不簡(jiǎn)單啊!于是上網(wǎng)找了一圈,發(fā)現(xiàn)這個(gè)是控制.htaccess的關(guān)鍵點(diǎn)所在。除了需要在Apache中打開Rewrite,以及正確設(shè)置.htaccess文件名之外,還需要對(duì)目錄的AllowOverride進(jìn)行配置,因?yàn)槟J(rèn)情況下AllowOverride值為None,這樣會(huì)完全忽略.htaccess文件。
此外,除了All和None這兩個(gè)值之外,AllowOverride還有很多個(gè)值,他們的含義分別如下:
AuthConfig
允許使用與認(rèn)證授權(quán)相關(guān)的指令(AuthDBMGroupFile, AuthDBMUserFile, AuthGroupFile, AuthName, AuthType, AuthUserFile, Require, 等)。
FileInfo
允許使用控制文檔類型的指令(DefaultType, ErrorDocument, ForceType, LanguagePriority, SetHandler, SetInputFilter, SetOutputFilter, mod_mime中的 Add* 和 Remove* 指令等等)、控制文檔元數(shù)據(jù)的指令(Header, RequestHeader, SetEnvIf, SetEnvIfNoCase, BrowserMatch, CookieExpires, CookieDomain, CookieStyle, CookieTracking, CookieName)、mod_rewrite中的指令(RewriteEngine, RewriteOptions, RewriteBase, RewriteCond, RewriteRule)和mod_actions中的Action指令。
Indexes
允許使用控制目錄索引的指令(AddDescription, AddIcon, AddIconByEncoding, AddIconByType, DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore, IndexOptions, ReadmeName, 等)。
Limit
允許使用控制主機(jī)訪問的指令(Allow, Deny, Order)。
Options[=Option,...]
允許使用控制指定目錄功能的指令(Options和XBitHack)。可以在等號(hào)后面附加一個(gè)逗號(hào)分隔的(無空格的)Options選項(xiàng)列表,用來控制允許Options指令使用哪些選項(xiàng)。
這樣以來,加上All和None,一共是7個(gè)可選的值了??磥碛衷鲩L(zhǎng)了不少的見識(shí)呀!以后再出現(xiàn)類似問題,不管哪個(gè)Linux下,我都能輕松找到問題所在了!