
Мне нужно защитить весь мой сайт (сейчас он только для разработки) паролем. Поэтому я создал .htaccess
и .htpassword
файл. .htaccess
Содержит
AuthUserFile /my/absolute/path/.htpassword
AuthName "Protected"
AuthType Basic
Require valid-user
Мое дерево каталогов выглядит так
/var/www
|--- file.php
|--- .htaccess
|--- dir
| |--- text.html
|--- file2.php
Если я попытаюсь получить доступ к file.php
или file2.php
(любому файлу, который находится непосредственно в /var/www
), веб-страница будет защищена паролем. Однако я могу получить доступ к файлу в подкаталоге ( /dir/text.html
) без какой-либо аутентификации. Я абсолютно уверен, что нет .htaccess
в /var/www/dir
(я использую ls -A
).
Я видел в Интернете, что .htaccess
это должно повлиять на каталог и ВСЕ подпапки, и это то, что мне нужно.
Знаете ли вы, почему в моем случае это не влияет на файл в подкаталоге? Если да, то как мне заставить это работать?
решение1
Если у вас статический IP-адрес, вы можете просто разрешить доступ к сайту только с одного IP-адреса в конфигурации вашего виртуального хоста:
<Directory /> Order Deny,Allow Deny from all Allow from 127.0.0.1 #your IP </Directory>
решение2
вы можете написать собственный код на PHP для входа в сеанс и запретить остаточный доступ в заголовке
session_start();
if(isset($_SESSION['user']))
{echo "do the stuff";}
else
{header("location:login");}