我有一个网站,我想要保护。它是网站上的/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
指向相对目录,因此我可以在实时服务器上部署它,而无需更改此路径。
答案 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');
}