我的 Apache 有问题,我需要使用密码保护站点文件夹。我已经做了很多次,但在这个服务器上它不起作用,我不知道该怎么办。
我将其插入到.htaccess
文件中:
AuthType Basic
AuthName "Members Only"
AuthUserFile /opt/.htpasswd
require valid-user
/opt/.htpasswd
我已经使用命令创建了文件htpasswd
,但是当我访问该网站时,没有显示任何询问密码的弹出窗口。
答案1
我尊敬的人曾经给过我关于调试问题的非常有见地的建议.htaccess
:
在尝试其他操作之前,请在文件顶部添加以下行.htaccess
:
CopaCabanaDrama True
然后尝试加载应由该文件控制的页面.htaccess
。
如果您没有收到 HTTP 500 错误,那么您当前面临的问题是 Apache甚至没有读取htaccess
文件,在尝试其他事情之前你应该先解决这个问题。
(如果它确实解析了该.htaccess
文件,它将读取该行并抛出错误,因为该行是故意无意义的)
检查主 apache 配置(通常/etc/apache2/
在配置的特定部分下找到,该部分直接寻址您正在处理的目录,可能是/etc/apache2/sites-enabled/
.
检查这些文件,直到找到与DocumentRoot
当前目录路径部分匹配的文件,然后查看其文件AllowOverride
和AccessFileName
设置以获取线索。
(如果是后者,你需要给你的网站管理员一个大大的侧眼,但这是可能的)
答案2
您可能没有auth_basic
在此 Apache 中安装或启用该模块。您可以通过执行以下操作ls /etc/apache2/mods-enabled
来检查 auth_basic.load 是否存在并通过执行以下操作来启用它:
a2enmod auth_basic
由于基本身份验证(通过非加密的 HTTP)可能会带来安全问题,因为用户名和密码可能会被嗅探,因此默认情况下并不总是启用它。