> Zencart中文手册 > 如何通过密码保护网站文件、目录,限制IP地址?

系统需求:
确认Apache里加载了 mod_rewrite 和 mod_auth

基础知识:
下面提到的 AuthUserFile /home/path/.htpasswd ,用于指定密码文件.htpasswd, 该文件需要手工建立。 /home/path 是用于存放 .htpasswd 文件的目录,相应修改。
Google下能找到很多相关说明,也可以在线生成 .htpasswd 密码文件,例如:http://tools.dynamicdrive.com/password/

这些代码需要保存到 .htAccess 文件,并置于需要保护的目录下,例如zencart网店的admin目录下。

基本的密码保护方法:

代码: 全选

# basic password protection
<IfModule mod_auth.c>
AuthUserFile /home/path/.htpasswd
AuthName "Username and password required"
AuthType Basic
<Limit GET POST>
  Require valid-user
</Limit>
</IfModule>



仅某些IP可以访问,其它的需要输入密码:
代码: 全选

# password protect excluding specific ips
<IfModule mod_auth.c>
AuthName "Username and password required"
AuthUserFile /home/path/.htpasswd
AuthType Basic
Require valid-user
Order Deny,Allow
Deny from all
Allow from localhost
Allow from 111.222.333.444
Allow from 555.666.777.888
Satisfy Any
</IfModule>



仅某些IP段的用户访问需要密码,其它IP的用户无需密码:
代码: 全选


# password protect only for specified ips
<IfModule mod_auth.c>
AuthName "Username and password required"
AuthUserFile /home/path/.htpasswd
AuthType Basic
Require valid-user
Order Allow,Deny
Allow from all
Deny from 111.222.333.444
Deny from 555.666.777.888
Satisfy Any
</IfModule>



密码保护单个文件:
代码: 全选


# password protect single file
<IfModule mod_auth.c>
<Files "protected.HTML">
  AuthName "Username and password required"
  AuthUserFile /home/path/.htpasswd
  Require valid-user
  AuthType Basic
</Files>
</IfModule>

其中 protected.html 是需要输入密码才能访问的文件。


密码保护多个文件:
代码: 全选

# password protect mulitple files
<IfModule mod_auth.c>
<FilesMatch "(protected.html)|(passwords.txt)">
  AuthName "Username and password required"
  AuthUserFile /home/path/.htpasswd
  Require valid-user
  AuthType Basic
</FilesMatch>
</IfModule>

上面指定 “protected.html” 和 “passwords.txt” 文件需要密码才能打开。同样可以加上更多的文件。


密码保护多种文件类型:
代码: 全选


# password protect mulitple file types
<IfModule mod_auth.c>
<FilesMatch ".(inc|txt|log|dat|zip|rar)$">
  AuthName "Username and password required"
  AuthUserFile /home/path/.htpasswd
  Require valid-user
  AuthType Basic
</FilesMatch>
</IfModule>

这样就密码保护了这些类型的文件:.inc, .txt, .log, .dat, .zip, .rar。


密码保护除了某个文件外的所有文件:
代码: 全选


# password protect everything except a single file
<IfModule mod_auth.c>
AuthName "Username and password required"
AuthUserFile /home/path/.htpasswd
Require valid-user
AuthType Basic
<Files "open-access.html">
  Order Deny,Allow
  Deny from all
  Allow from 123.456.789
  Satisfy any
</Files>
</IfModule>

这样就只有访问 open-access.html 这个文件不需要密码,该文件可以是保存在某个子目录中。


密码保护除了某些文件外的所有文件:
代码: 全选


# password protect everything except specified files
<IfModule mod_auth.c>
AuthName "Username and password required"
AuthUserFile /home/path/.htpasswd
Require valid-user
AuthType Basic
<FilesMatch "(open-access-1.html)|(open-access-2.html)|(open-access-3.html)">
  Order Deny,Allow
  Deny from all
  Allow from 123.456.789
  Satisfy any
</FilesMatch>
</IfModule>

这样就密码保护除了“open-access-1.html”, “open-access-2.html”, “open-access-3.html” 外的所有文件。