打開httpd.conf(在那里? APACHE目錄的CONF目錄里面),用文本編纂器打開后,查找
(1)
Options FollowSymLinks
AllowOverride None
改為
Options FollowSymLinks
AllowOverride All
(2)去掉下面的注釋
LoadModule rewrite_module modules/mod_rewrite.so
DocumentRoot "D:\Web\WEBAPI"
<Directory "D:\Web\WEBAPI">
#
# Possible values for the Options directive are "None", "All",
# or any combination of:
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
# The Options directive is both complicated and important. Please see
# http://httpd.apache.org/docs/2.4/mod/core.html#options
# for more information.
#
Options Indexes FollowSymLinks Includes ExecCGI
#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# AllowOverride FileInfo AuthConfig Limit
#
AllowOverride All
#
# Controls who can get stuff from this server.
#
Require all granted
</Directory>
(不)使用.htaccess文件的場合
一般情況下,不應該使用.htaccess文件,除非你對主配置文件沒有訪問權限。有一種很常見的誤解,認為用戶認證只能通過.htaccess文件實現,其實並不是這樣,把用戶認證寫在主配置文件中是完全可行的,而且是一種很好的方法。
.htaccess文件應該被用在內容提供者需要針對特定目錄改變服務器的配置而又沒有root權限的情況下。如果服務器管理員不願意頻繁修改配置,則可以允許用戶通過.htaccess文件自己修改配置,尤其是ISP在同一個機器上運行了多個用戶站點,而又希望用戶可以自己改變配置的情況下。
雖然如此,一般都應該盡可能地避免使用.htaccess文件。任何希望放在.htaccess文件中的配置,都可以放在主配置文件的段中,而且更高效。
避免使用.htaccess文件有兩個主要原因。
首先是性能。如果AllowOverride啟用了.htaccess文件,則Apache需要在每個目錄中查找.htaccess文件,因此,無論是否真正用到,啟用.htaccess都會導致性能的下降。另外,對每一個請求,都需要讀取一次.htaccess文件。
還有,Apache必須在所有上級的目錄中查找.htaccess文件,以使所有有效的指令都起作用,所以,如果請求/ctusky/ctu/sky中的頁面,Apache必須查找以下文件:
/.htaccess
/ctusky/.htaccess
/ctusky/ctu/.htaccess
/ctusky/ctu/sky/.htaccess 一共就要訪問4個額外的文件,就算這些文件都不存在,這也是本文開始說會影響服務器的一點性能的原因。
其次是安全。這樣會允許用戶自己修改服務器的配置,這可能會導致某些意想不到的修改,所以請認真考慮是否應當給予用戶這樣的特權。