Allowoverride All
Options +IncludesNoExec -ExecCGI
如果你只是為了知道如何認證,而直接從這裡開始看的,有很重要的一點需要注意,有一種常見的誤解,認為實現密碼認證必須要使用.htaccess文件,其實是不正確的。把認證指令放在主配置文件的段中是一個更好的方法,而.htaccess文件應該僅僅用於無權訪問主配置文件的時候。參見上述關於何時應該與何時不應該使用.htaccess文件的討論。
有此聲明在先,如果你仍然需要使用.htaccess文件,請繼續看以下說明。
.htaccess文件的內容:
AuthType Basic
AuthName "Password Required"
AuthUserFile /www/passwords/password.file
AuthGroupFile /www/passwords/group.file
Require Group admins
必須設置 AllowOverride AuthConfig 以允許這些指令生效。
.htaccess文件的另一個常見用途是允許一個特定的目錄使用伺服器端包含(
SSI),可以在需要的目錄中放置.htaccess文件,並作如下配置:
Options +Includes
AddType text/html shtml
AddHandler server-parsed shtml
注意,必須同時設置 AllowOverride Options 和 AllowOverride FileInfo 以使這些指令生效。
可以通過.htaccess文件允許在特定的目錄中執行CGI程序,需要作如下配置:
Options +ExecCGI
另外,如下配置可以使給定目錄下的所有文件被視為CGI程序:
Options +ExecCGI
SetHandler cgi-script
注意,必須同時設置 AllowOverride Options 和 AllowOverride FileInfo 以使這些指令生效。
.htaccess工具
不會寫的朋友,在這介紹一款很不錯.htaccess的重定向—URL重寫工具rewriting-tool
如果在.htaccess文件中的某些指令不起作用,可能有多種原因。
最常見的原因是AllowOverride指令沒有被正確設置,必須確保沒有對此文件區域設置 AllowOverride None 。有一個很好的測試方法,就是在.htaccess文件隨便增加點無意義的垃圾內容,如果伺服器沒有返回了一個錯誤消息,那麼幾乎可以斷定設置了 AllowOverride None 。
在訪問文檔時,如果收到伺服器的出錯消息,應該檢查Apache的錯誤日誌,可以知道.htaccess文件中哪些指令是不允許使用的,也可能會發現需要糾正的語法錯誤。