2015-09-24 4 views
1

У меня есть Apache HTTPd установлен на моем CentOS 7. Добавив следующий код в httpd.conf, я могу защитить пароль моего сайтаНе защитить пароль PHP в Apache

<Directory /var/www/html> 
    AuthType Basic 
    AuthName "Restricted Files" 
    AuthBasicProvider file 
    AuthUserFile /var/www/password/htpasswd 
    Require user validUser 

    <Files index.php> 
    Require all granted 
    </Files> 
</Directory> 

Так как я хочу иметь/var/www/html/index.php не защищен паролем, Require all granted добавлен, как показано. Это, однако, по-прежнему требует ввода имени пользователя и пароля. Пожалуйста, помогите, спасибо ^^

ответ

1

Не защищайте полный каталог, но защитить с помощью LocationMatch:

<LocationMatch "^/(?!index\.php).|index\.php.+$"> 
    AuthType Basic 
    AuthName "Restricted Files" 
    AuthBasicProvider file 
    AuthUserFile /var/www/password/htpasswd 
    Require user validUser 
</LocationMatch> 
+0

Благодаря отвечая, но жаль, что она не работает. Поскольку в/var/www/html есть еще несколько личных страниц, я бы хотел разрешить доступ к index.php без проверки подлинности. Вот почему я защитил весь каталог. –

+0

Да, я понял. LocationMatch защищает все, кроме /index.php. –

+0

Спасибо другу. Наконец я узнаю, что случилось. Теперь я использую wordpress, и все подпапки защищены. Когда я обращаюсь к index.php, к этому защищенному содержимому обращаются, поэтому он выглядит так, что index.php также защищен паролем. –