* Z n+ N5 S* s, i! j) f6 C ( ^: ]5 _0 k2 i& C3 t
+ A6 K c/ y8 U& S& ~
前面.htaccess文件的第二行关闭组功能。第四行指定用户的身份认证类型为Basic,这也是mod_auth模块的默认设置。最后一行告诉Apache哪些用户可以访问受保护的目录。valid-user条目会授权任何用户(用户名在Apache密码文件中并且输入的密码正确)访问该目录。7 @8 `6 M; \7 y8 w. I
2 Z% |2 P1 r/ v! r# V ) A3 ~; Z; {' f3 ~& Z2 |/ K
/ w3 X& U- j+ ]# s6 O4 M. ~只要Apache可以读取其密码文件,该文件可放在系统上的任何地方。把这个文件与.htaccess文件放在同一目录下也是安全的,因为默认情况下,Apache将不会对名字以.ht开头的任何文件的请求进行回复。但是一定不要更改httpd.conf配置文件,以防Apache对名字以.ht开头的文件的请求进行回复。 & [: X/ B3 M5 C# O4 F, m- X1 v / F- @3 ]% O$ R9 |/ [ b$ c' y d- y: G5 I
" Y/ B2 Q' U$ {/ X0 p" [下面的命令将在工作目录中创建(–c)一个带有Sam条目的.htpasswd文件。省略–c选项可以在现有.htpasswd文件中添加用户或更改密码。 ' x8 X7 E& F7 k, k. D 3 D2 ~. g0 [9 Q+ o$ htpasswd -c .htpasswd sam/ D$ M! H- L+ k+ Z+ x: j
; K% D( [& G* ^, o* ^
New password: 9 k b6 k) e- t. H 8 K7 n3 B- Z5 K X
Re-type new password: * d6 [- ~3 L1 C 8 L4 }/ Z9 K: v+ i3 |( ` A& wAdding password for user sam% I5 y4 e" q( }3 M/ o* K+ K
% W, h) w( M$ V% T2 t l% M! X+ g# ~& X6 m- z) ]
9 P% K0 W' m4 M
默认的httpd.conf文件包括用于/var/www的AllowOverride None指令。要启用Apache来处理用户认证指令(如读取.htaccess文件),必须将这个指令更改为AllowOverride AuthConfig或将其删除。 & j, a8 h$ D% E4 V/ |* z 8 N. f$ M- w, Z; c- j { ! f5 Z/ P- P d- t5 Y: B 9 b# G! z/ j2 z3 W
在Apache已配置为可处理.htaccess文件后,当它收到对文件的请求时,必须从所请求的文件向上遍历目录层次结构一直到根目录,查找.htacess文件,以确定它是否可以提供该请求的文件。此搜索可能会影响性能。通常情况下性能下降不太严重,但如果性能很关键,则这个问题将很棘手。