我在为我的网络服务器上的特定文件夹设置htaccess和htpasswd时遇到问题。我已经用尽了目前存在于stackoverflow上的所有材料和答案,并且没有在哪里。这是我找到的https://help.ubuntu.com/community/EnablingUseOfApacheHtaccessFiles最好的指南,这是我迄今为止所做的;
我修改了apache2.conf文件,在底部添加以下内容;
<Directory "/var/www/resultparse/">
AllowOverride AuthConfig
</Directory>
我在/ var / www / resultparse /目录中创建了.htaccess文件;
AuthUserFile /var/www/resultparse/.htpasswd
AuthName "Authorization Required"
AuthType Basic
Require admin john
我使用以下命令生成了.htpasswd文件,添加了用户john和admin;
htpasswd -c /var/www/resultparse/.htpasswd john
htpasswd /var/www/resultparse/.htpasswd admin
这会导致生成以下文件;
john:$apr1$we8lGQTG$dU2ZxXowyQSZKIQ3m2RU/.
admin:$apr1$mps05AMa$IGH9HBOWxO.CyU7SmuvND.
最后,我使用sudo /etc/init.d/apache2 reload
重新启动了apache服务器,以便加载新配置。
这样做的结果是,当我访问此文件夹中的页面时,我会收到一个登录框提示,但是如果我将用户指定为admin和密码为admin(我将其设置为),它会再次提示我一个用户和密码让我觉得它与文件中的用户名和密码不匹配。
我原本认为它可能是文件的权限问题所以我修改了.htpasswd和.htaccess文件的权限为777但没有运气。
有趣的是,如果我将.htaccess的require字段修改为:
Require valid-user
然后我没有得到提示我输入密码的对话框。
此外,如果我将.htaccess中的AuthUserFile
更改为错误的路径,则在访问页面时会收到内部服务器错误,证明其找到.htpasswd文件。
如何调试此方面的任何帮助或建议将不胜感激。
答案 0 :(得分:2)
您似乎错过了Require
directive的user
实体名称。
尝试将该行更改为:
Require user admin john
此外,由于您允许任一用户登录,您还可以尝试:
Require valid-user
答案 1 :(得分:1)
您是否尝试过再次打开和关闭它?
我不相信这一点!重新启动浏览器并清除历史记录,它开始工作。没有其他变化。浪费了两个多小时。