这是我的 .htaccess 文件:
AuthType Basic
AuthName "LOG IN"
AuthUserFile .htpasswd
Require valid-user
登录后,我收到 500 错误。如果我清除 .htaccess 文件,它工作正常。
有任何想法吗?
我认为您必须编写 .htpasswd 的完整路径(在 linux 上:/path/to/.htpasswd)
来自http://weavervsworld.com/docs/other/passprotect.html
故障排除
确保 AuthUserFile 中指定的路径是正确的完整路径。这是造成问题的主要原因。如果 Apache 找不到 .htpasswd 文件,那么所有尝试都将失败。
确保设置了 .htaccess 和 .htpasswd 文件的权限,以便 Apache 可以读取它们。chmod 0644 .htaccess chmod 0644 .htpasswd
其他问题可能超出您的控制范围。Web 管理员可以锁定 Apache,使其忽略遇到的所有 .htaccess 文件。这可以通过 ServerRoot/DocumentRoot 目录上的 AllowOverride None 指令和选项来实现。如果是这种情况(不允许.htaccess),您将不得不请求您的网络管理员在您的个人网络目录中允许带有授权指令的 .htaccess 文件。这可以通过 AllowOverride AuthConfig 指令和选项来实现。
重要提示:.htpasswd 的完整路径指的是真正的完整路径,如果您使用的是终端而不是使用
maddy@maddy:/var/www/html/project_name$ pwd
/var/www/html/project_name
文件在 /var/www/html/project_name/ .htaccess
AuthType Basic
AuthName "My restricted Area"
AuthUserFile /var/www/html/project_name/.htpasswd
Require valid-user
文件在 /var/www/html/project_name/ .htpasswd
someuser:$apr1$oi0zg2sf$jTagKK2S7StjC0WSVJLUH0
生成用户:密码组合参考
1) http://www.htaccesstools.com/htpasswd-generator/
2) https://www.web2generators.com/apache-tools/htpasswd-generator
未测试
https://www.gaslampmedia.com/generate-htaccess-password-htpasswd-from-the-command-line/
由于这个问题在谷歌中得分很高,我想我会附加史蒂文的答案:
这里.htpasswd 的完整路径是指真正的完整路径,而不是您通过ftp 看到的路径。例如,当我使用 ftp 登录到我的共享主机帐户时,我的 Web 根目录似乎位于 /public_html
然而,这只是因为 ftp 服务器是如何设置的。我的网络根目录的实际路径是 /home/username/public_html 并设置 AuthUserFile 记住这一点解决了这个问题,至少对我来说。
经过一番谷歌搜索后,我在网站管理员网站上找到了缺失的信息。
如果你使用 php 并得到 Error - 500
一个好办法是:创建一个包含内容的 php 文件“info.php”:
<?php
phpinfo();
在浏览器中输入此 url 在 Apache 环境中查找 DOCUMENT_ROOT
获取此内容 例如:'C:/wamp/www/' 并更新您的 .htaccess:
AuthUserFile 'C:/wamp/www/.htpasswd'