【问题标题】:.htpasswd and .htaccess - internal server error.htpasswd 和 .htaccess - 内部服务器错误
【发布时间】:2019-07-30 14:05:11
【问题描述】:

我想用密码保护我的网站,但我一添加 .htpasswd 和 .htaccess 文件,就会收到服务器错误:

内部服务器错误

服务器遇到内部错误或配置错误,无法完成您的请求。

请联系服务器管理员并告知他们错误发生的时间,以及您可能所做的任何可能导致错误的事情。

服务器错误日志中可能会提供有关此错误的更多信息。

这是我正在使用的代码:

.htaccess

AuthType Basic  
AuthName "Top Secret for SongKick eyes only."  
AuthUserFile /webroot/.htpasswd  
require valid-user

.htpasswd

songkick:isS1rCTQE/p8E

我也尝试过AuthUserFile /.htpasswd(即没有“webroot”,这是文件管理器中的文件夹名称),但这也不起作用。

顺便说一句,我正在使用 GoDaddy 托管,如果这有影响的话。

【问题讨论】:

  • 应该在apache日志文件中显示详细的错误报告,先检查一下。
  • 我没有足够的积分来发表评论,所以只分享来自another forummy answer

标签: .htaccess .htpasswd


【解决方案1】:

根据AuthUserFile,您必须提供密码文件的完整路径,而不是DocumentRoot 的相对路径,如果它是绝对路径(即以斜杠开头)。

AuthUserFile 指令设置一个文本文件的名称,该文件包含用于用户身份验证的用户列表和密码。 File-path 是用户文件的路径。如果不是绝对的,则将其视为相对于 ServerRoot

注意ServerRoot 不是DocumentRoot

如果DocumentRoot/var/www,密码文件是/var/www/webroot/.htpasswd,你必须说

AuthUserFile /var/www/webroot/.htpasswd

在您的 .htaccess 文件中。


您可以通过一个小的 PHP 脚本了解绝对路径,例如

<?php
echo "Absolute path: ", getcwd();

把它放在你想找到 .htpasswd 文件的目录中,用http://www.example.com/path/to/test.php调用它

完成后不要忘记删除脚本。


也就是说,您不应该将密码文件放在您的DocumentRoot 中任何可访问的位置。最好将其放在无法通过网络访问的位置,例如 /etc/apache2/htpasswd 或任何适合您的位置。

【讨论】:

  • 补充一点:完整路径与您的 FTP 路径不同。您的 FTP 可能显示 12.34.567.89/&lt;root&gt;,而实际路径可能是 /var/www/domain.com。这可以在您的控制面板(如果存在)或通过错误日志(如果可访问)中找到。
【解决方案2】:

我想到了两件事。

  1. 网络服务器用户可以读取.htpasswd 吗?

  2. 您知道 Apache 是否设置了 AllowOverride all 以允许 .htaccess 按预期运行?

【讨论】:

  • 嘿,杰克,啊,我真的不知道这两件事是什么意思。我会采取哪些步骤来找出这些问题?
  • 在将.htpasswd 的权限更改为-rw-r--r-- 之前,我得到了500。
  • @horizens 很高兴这有帮助!正如我所指出的,.htpasswd 需要被 Web 服务器用户读取。 -rw-r--r-- 的权限应该可以正常工作。
【解决方案3】:

所有标准答案(完整路径、正确格式等)都不适合我。经过大量的追查,我发现父文件夹的权限不足,所以即使.htaccess中的路径是正确的并且文件的权限是rw-r-r,仍然不行,因为父级是rwx-rw- -。在限制访问上游文件夹的主机上,这可能很难追踪。

【讨论】:

    【解决方案4】:

    此错误的主要原因是“AuthUserFile”路径。我遇到了同样的问题,我通过进入 cpanel 解决了它。通过保护您在 cPanel 中的文件夹,它会自动检测 htpasswd 文件。

    转到cPanel->密码保护目录->定义目录,然后创建一个用户。希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-05
      • 1970-01-01
      • 2014-10-31
      • 2016-07-16
      • 1970-01-01
      • 1970-01-01
      • 2016-09-22
      相关资源
      最近更新 更多