2

我有一台运行 Apache 2.2 的 Web 服务器,并且正在使用 Apache 2.4 启动一个新的服务器。
以下是我在新 2.4 机器上的虚拟主机:

<VirtualHost *:80>
        DocumentRoot /var/www/
        ErrorLog /var/log/apache2/error_log
        LogLevel info
        CustomLog /var/log/apache2/access_log combined
        <Directory /var/www/>
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>
</VirtualHost>

2.2 机器使用默认的 Apache conf。我在2.2机器上成功使用的.htaccess文件如下:

AuthName "Htaccess"
AuthUserFile /var/www/.htpasswd
AuthType Basic
Satisfy Any
<Limit GET POST>
        Order Deny,Allow
        Deny from all
        Allow from officeip
        Require valid-user
</Limit>

这使我们的办公室 IP 可以查看内容,其他所有人都必须输入用户名和密码。在 Apache 2.2 上,这按我想要的方式工作。如果您转到服务器地址或目录下的任何脚本,系统会提示您登录。但是,在 2.4 机器上,如果您转到特定脚本,它会要求您登录。

.htaccess 文件在 2.4 中的工作方式是否发生了变化,如果是这样,我怎样才能改变我的方式来做我想做的事?

4

1 回答 1

0

根据手册(我在 Apache 网站上搜索satisfy并找到了这个链接:http ://httpd.apache.org/docs/trunk/upgrading.html#run-time )访问控制系统已经改变。

我相信你现在可以做到:

AuthType Basic
AuthName "Htaccess"
# Optional line:
AuthBasicProvider file
AuthUserFile /var/www/.htpasswd
<RequireAll>
    RequireMethod GET POST
    <RequireAny>
        Require ip officeip
        Require valid-user
    </RequireAny>
</RequireAll>

资料来源:

于 2013-12-17T10:38:12.447 回答