2015-04-23 2 views
0

У меня есть единственный сайт, который я хочу защитить. Это /phpinfo на сайте.Обычная проверка подлинности только для дочерних сайтов

Существует несколько переадресаций. Мой апач файл выглядит следующим образом:

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

Решение с использованием 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'); 
} 
Смежные вопросы