.htaccess 在 Linux (Debian) apache2 (Google Cloud) 中不起作用

问题描述 投票:0回答:1

我知道这个话题已经讨论得很厉害了,但我仍然没有看到如何调试这个问题的说明。我知道 .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 google-cloud-platform debian .htpasswd
1个回答
0
投票

我现在也在尝试用这个来限制对我的网站的访问 指示。我不确定这是否对 .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
文件是最近的前驱文件;但事实可能并非如此。

© www.soinside.com 2019 - 2024. All rights reserved.