我知道这个话题已经讨论得很厉害了,但我仍然没有看到如何调试这个问题的说明。我知道 .htaccess 文件正在被读取,因为我向其中添加了一些乱码,这破坏了网站。我还创建了 .htpasswd 文件。问题是该网站不需要用户名和密码。我该如何调试这个问题?
这就是
/etc/apache2/apache2.conf
中的内容:
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
这就是
/var/www/html/.htaccess
中的内容:
AuthType Basic
AuthName "Área restrita"
AuthUserFile /etc/apache2/.htpasswd
require valid-user
我没有另一个
vHost
。这是我拥有的唯一虚拟机,也是托管该网站的虚拟机。
DocumentRoot
在这些文件中指定,如下所示:
sites-available/000-default.conf: DocumentRoot /var/www/html
sites-available/default-ssl.conf: DocumentRoot /var/www/html
我在
.htaccess
中放置了另一个 /usr/lib/cgi-bin
文件,该文件与 /var/www/html
中的完全相同。目的是保护 perl 脚本。
网址是 http://recordspreservation.org
我现在也在尝试使用此指令限制对我的网站的访问。我不确定这是否对
.htaccess
问题有影响:
<Location />
Require ip 107.217.8.189
</Location>
这些是我在
Directory
上找到的 /etc/apache2
容器。其中大多数都是默认的(即我没有更改它们)。我可能担心的是/home/*/public_html
conf-available/gitweb.conf: <Directory /usr/share/gitweb>
conf-available/gitweb.conf: </Directory>
conf-available/javascript-common.conf: <Directory "/usr/share/javascript/">
conf-available/javascript-common.conf: </Directory>
conf-available/serve-cgi-bin.conf: <Directory "/usr/lib/cgi-bin">
conf-available/serve-cgi-bin.conf: </Directory>
conf-enabled/gitweb.conf: <Directory /usr/share/gitweb>
conf-enabled/gitweb.conf: </Directory>
conf-enabled/javascript-common.conf: <Directory "/usr/share/javascript/">
conf-enabled/javascript-common.conf: </Directory>
conf-enabled/serve-cgi-bin.conf: <Directory "/usr/lib/cgi-bin">
conf-enabled/serve-cgi-bin.conf: </Directory>
mods-available/alias.conf: <Directory "/usr/share/apache2/icons">
mods-available/alias.conf: </Directory>
mods-available/userdir.conf: <Directory /home/*/public_html>
mods-available/userdir.conf: </Directory>
mods-enabled/alias.conf: <Directory "/usr/share/apache2/icons">
mods-enabled/alias.conf: </Directory>
sites-available/default-ssl.conf: <Directory /usr/lib/cgi-bin>
sites-available/default-ssl.conf: </Directory>
命令结果
sudo apachectl -M | grep auth
auth_basic_module (shared)
authn_core_module (shared)
authn_file_module (shared)
authz_core_module (shared)
authz_host_module (shared)
authz_user_module (shared)
谢谢!
我现在也在尝试用这个来限制对我的网站的访问 指示。我不确定这是否对 .htaccess 问题有影响:
<Location /> Require ip 107.217.8.189 </Location>
尚不清楚您最初是否有这些指令,或者这是您之后添加的内容,但是是的,这些指令确实会产生“影响”。
这将有效地覆盖
.htaccess
文件中的 HTTP 身份验证指令并授予您的 IP 访问权限。由于已通过其他方式授予访问权限,因此不会提示您输入用户名/密码。
<Location>
部分合并到 after <Directory>
和 .htaccess
部分。
如果您想强制执行两者,那么系统会提示 you(来自您的 IP 地址)输入用户名/密码(并且来自其他 IP 的用户将被简单地阻止),那么您也许可以将
AuthMerging And
添加到 <Location>
块(默认为 Off
)。例如:
<Location />
AuthMerging And
Require ip 107.217.8.189
</Location>
这确保了授权逻辑与最近的前任逻辑相结合。尽管这确实假设有问题的
.htaccess
文件是最近的前驱文件;但事实可能并非如此。