网站开发 · 2025年4月26日

ZenCart密码保护网站文件、目录,限制IP地址方法

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

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

这些代码需要保存到 .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” 外的所有文件。