我有一台运行Apache 2.2的Web服务器,我正在使用Apache 2.4开始一个新服务器 以下是我在新2.4机器上的vhost:
<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中工作如果是这样,我怎样才能改变我的方式来做我想做的事?
答案 0 :(得分: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>
来源: