提问人:Marcos Camargo 提问时间:7/26/2023 最后编辑:Marcos Camargo 更新时间:7/27/2023 访问量:68
.htaccess 在 Linux (Debian) apache2 (Google Cloud) 中不起作用
.htaccess Is Not working in Linux (Debian) apache2 (Google Cloud)
问:
我知道这个话题已经被讨论得死去活来,但我仍然没有看到有关如何调试此问题的说明。我知道 .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
我放置了另一个文件,其中与 .目的是保护 perl 脚本。.htaccess
/usr/lib/cgi-bin
/var/www/html
URL 已 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>
目前尚不清楚您最初是否有这些指令,或者这是您后来添加的内容,但是是的,这些确实会产生“影响”。
这将有效地覆盖文件中的 HTTP 身份验证指令,并授予对 IP 的访问权限。系统不会提示您输入用户名/密码,因为访问权限已通过其他方式授予。.htaccess
<Location>
部分合并在 和 部分之后。<Directory>
.htaccess
如果您想同时强制执行这两项命令,那么系统会提示您(从您的 IP 地址)输入用户名/密码(并且来自其他 IP 的用户被简单地阻止),那么您也许可以添加到阻止中(默认值为 )。例如:AuthMerging And
<Location>
Off
<Location />
AuthMerging And
Require ip 107.217.8.189
</Location>
这可确保授权逻辑与最近的前置逻辑相结合。尽管这确实假设所讨论的文件是最接近的前身;它可能不是。.htaccess
评论
<Directory>
/var/www/
.htaccess
/var/www/html/
DocumentRoot
<Directory>
.htaccess
.htaccess
Require all denied
<Directory /var/www/html>
apachectl -M | grep auth
require
Require