需要Apache 2.2至2.4中的有效用户
我的需要Apache 2.2至2.4中的有效用户,apache,.htaccess,basic-authentication,Apache,.htaccess,Basic Authentication,我的.htaccess文件中有以下配置,它在Apache 2.2中工作,但在2.4中没有: SetEnvIf Request_URI ^/admin require_auth=true AuthUserFile /var/www/site.htpasswd AuthName "Admin Access" AuthType Basic Require all denied Satisfy any Require valid-user Allow from env=!requ
.htaccess
文件中有以下配置,它在Apache 2.2中工作,但在2.4中没有:
SetEnvIf Request_URI ^/admin require_auth=true
AuthUserFile /var/www/site.htpasswd
AuthName "Admin Access"
AuthType Basic
Require all denied
Satisfy any
Require valid-user
Allow from env=!require_auth
如何将其转换为在Apache2.4中工作?基本上,如果URI以
/admin
开头,则应询问他们密码。只需将此.htaccess
文件放在要保护的文件夹中:
AuthUserFile /var/www/site/.htpasswd
AuthName "Admin Access"
AuthType Basic
require valid-user
从
例如,如果您希望保护目录/usr/local/apache/htdocs/secret,可以使用以下指令,或者放在文件/usr/local/apache/htdocs/secret/.htaccess中,或者放在节中的httpd.conf中
但是使用新的If
指令,我们也可以从根目录执行此操作:
<If "'%{REQUEST_URI}' =~ m#/?admin(/.*)?#">
AuthUserFile /var/www/site/.htpasswd
AuthName "Admin Access"
AuthType Basic
require valid-user
</If>
AuthUserFile/var/www/site/.htpasswd
AuthName“管理员访问”
AuthType Basic
需要有效用户
我在带有Apache 2.4.27的Ubuntu16.04.03 LTS服务器上测试了这一点。您必须使用.htpasswd文件的完整路径 我将向您展示获得此路径的最简单方法 在同一文件夹中创建一个.php文件,其中包含以下代码:
<?php
echo dirname(__FILE__) . '/.htpasswd';
?>
然后通过浏览器访问它,它将显示需要放入.htaccess文件的完整路径。这不允许我根据当前配置基于URL应用它。而不仅仅是使用上面添加的If指令