8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

使用 .htaccess 对目录及其所有子文件夹进行密码保护

Qiuzman 1月前

18 0

我正在尝试使用密码保护子域名及其所有子目录和文件,但我对此事的了解非常有限,我该怎么做呢?

我正在尝试使用密码保护子域名及其所有子目录和文件,但我对此事的了解非常有限,我该怎么做呢?

帖子版权声明 1、本帖标题:使用 .htaccess 对目录及其所有子文件夹进行密码保护
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Qiuzman在本站《.htaccess》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 这是一个简单的两步过程

    在你的 .htaccess 中输入

    AuthType Basic
    AuthName "restricted area"
    AuthUserFile /path/to/the/directory/you/are/protecting/.htpasswd
    require valid-user
    

    使用 http://www.htaccesstools.com/htpasswd-generator/ 或命令行生成密码并将其放入 .htpasswd 中

    注意 1:如果您使用 cPanel,则应在安全部分配置“密码保护目录”

    编辑:如果这不起作用,那么你可能需要 AllowOverride All 中对 .htaccess 目录(或至少对以前的目录) http.conf ,然后重新启动 apache

    <Directory /path/to/the/directory/of/htaccess>
          Options Indexes FollowSymLinks MultiViews
          AllowOverride All
    </Directory>
    
  • 那么我是否应该将 .htaccess 文件和 .htpasswd 文件都放在主域的目录中?或者我是否应该将 .htpasswd 文件放在我想要保护的目录中,而将 .htaccess 放在子域的目录中?

  • 我将以不同的方式来表述:将 .htpasswd 放入一个不会以任何方式暴露给网络(无论是否受保护)但可供 apache 使用的目录中。

  • 我输入了错误的密码。现在每次我重新加载时都会返回:内部服务器错误。我看不到用户名密码输入选项。即使我的网站无法正常工作,它也会返回内部服务器错误。@Mahesh

  • 只需扩展 Mahesh 的回答。

    .htaccess

    AuthType Basic
    AuthName "restricted area"
    AuthUserFile /path/to/the/directory/you/are/protecting/.htpasswd
    require valid-user
    

    如果您不想使用在线密码生成器,您可以使用 htpasswd openssl

    1. 使用 htpasswd

    htpasswd -c /path/to/the/directory/you/are/protecting/.htpasswd my_username
    # then enter a password
    # -c means Create a new file
    

    2. 使用 openssl

    openssl passwd -apr1 your_password
    

    然后将生成的密码输入到 .htpasswd 以下格式:

    username:<generated_password>
    

    例子:

    .htpasswd

    my_username:$apr1$ydbofBYx$6Zwbml/Poyb61IrWt6cxu0
    
  • 请注意,htpasswd 文件不需要命名为 .htpasswd,也不需要位于您想要保护的文件夹中。为了安全起见,您可以将其放置在 http / httpdocs 文件夹之外,这样就无法通过 HTTP/S 访问它。例如 /var/www/private-files/password-list-for-protected-folder

  • 要对 Apache 提供的目录进行密码保护,您需要在要保护的目录中放置一个 .htaccess 文件,并在系统上 Apache 用户可以访问的任何位置放置一个 .htpasswd 文件(但要将其放在合理且私密的位置)。您很可能不想将其放在 .htpasswd .htaccess .

    .htaccess 文件可能已经存在。如果不存在,请创建它。然后插入:

    AuthType Basic
    AuthName "Your authorization required message."
    AuthUserFile /path/to/.htpasswd
    require valid-user
    

    然后使用您想要的任何用户名和密码创建一个 .htpasswd 文件。密码应该是加密的。如果您使用的是 Linux 服务器,则可以使用 htpasswd 命令,它将为您加密密码。以下是该命令的使用方法:

    htpasswd -b /path/to/password/file username password

  • 您需要生成一个密码(用户名+密码)字符串用于身份验证,将其写入文件并将其放在您想要限制访问的子目录中。

    字符串看起来像,

    username:hashkey
    
    • 您可以使用 HTTP 密码生成器工具 来执行此操作。
    • 将您从上述网站获得的字符串复制并粘贴到网站根目录之外的任何新文件 (.htpasswd) 中(最好保存在用户主目录内的任何位置)。
    • 在您的 .htaccess 文件中添加以下行。
    AuthType Basic
    AuthName "Require Authentication"
    AuthUserFile [PATH_TO_FILE]/.htpasswd
    Require valid-user
    
    • p2

    • p3

    • p4

    如果您有任何疑问,请告诉我。

  • You'd probably want to use the mod_auth_digest module. Apache has provided a very nice 指南, to using the full range of authentication and authorization modules.

  • 引用 11

    看看这个: \'此模块实现了 HTTP 摘要式身份验证 (RFC2617),并提供了 mod_auth_basic 的替代方案,其中密码不以明文形式传输。但是,这不会带来比基本身份验证更大的安全优势。另一方面,使用摘要式身份验证在服务器上存储密码的安全性远低于使用基本身份验证。因此,使用基本身份验证并使用 mod_ssl 加密整个连接是一个更好的选择。\'

返回
作者最近主题: