仅限子站点的基本身份验证

时间:2015-04-23 01:12:24

标签: .htaccess basic-authentication

我有一个网站,我想要保护。它是网站上的/phpinfo

有几个重定向。我的apache文件看起来像这样:

RewriteEngine On
... A list of RewriteRules
RewriteRule ^(phpinfo)$ index.php?controller=$1

index.php 控制器作为参数,并包含所查看的特定网站。

我已在几个地方使用这样的基本身份验证,工作正常:

AuthUserFile /var/www/....../.htpasswd
AuthGroupFile /dev/null
AuthName "Protected content"
AuthType Basic
<Limit GET>
    require valid-user
</Limit>

但是,问题是如何将此基本身份验证限制为服务器上的/phpinfo,因此只有此网站受到保护?理想情况下,AuthUserFile指向相对目录,因此我可以在实时服务器上部署它,而无需更改此路径。

1 个答案:

答案 0 :(得分:0)

使用PHP而不是htaccess的解决方案。它简单而有效。

if (!isset($_SERVER['PHP_AUTH_USER']) || $_SERVER['PHP_AUTH_USER'] != Config::AdminUser || $_SERVER['PHP_AUTH_PW'] != Config::AdminPassword)
{
    header('WWW-Authenticate: Basic realm="Protected content"');
    header('HTTP/1.0 401 Unauthorized');
    die('Protected content');
}