PHP

как обычно через PHP закрывается или открывается доступ к заданным папкам и содержимому?

Надо, чтобы доступа к папке с файлами вообще не было. Когда вводим адрес файла, производится вызов PHP-скрипта. Если авторизации нет, скрипт производит редирект на страницу авторизации. А если пользователь залогинен, то скрипт читает содержимое файла и передаёт его браузеру - предварительно установив нужные заголовки.

Документация: http://php.net/manual/ru/function.header.php, пример # 1.
Олег Малахов
Олег Малахов
60 354
Лучший ответ
Алексей Морозов вроде получилось. простое и удобное решение. только пришлось помудрить с заголовками.
ну делают примерно так.
на самом деле никаких папок не сервере нет: есть лишь одна единственная точка входа. например, index.php, который в зависимости от прав и полномочий пришедшего на сайт пользователя показывает или не показывает ему информацию. Для этого нужна еще определенная настройка веб-сервера.
Сегодня в большинстве случаев не пишут на чистом php, используют различные фреймворки. И в каждом есть модули для т. н. роутинга, то бишь, какие методы или классы вызывать для тех или иных параметров. Описание роутинг выглядит примерно так
$framework->route('GET /@status/@action/@item', 'routes->show');
фреймворк не только вызывает класс routes, метод show, но еще и инициализирует переменные $status, $action, $item (значения могут быть разные)
В методе show анализируются эти переменные и исполняется соответствующий код. Вот так получается, что для projects/add/new ($action равно 'add', $item - new), а для projects/delete/1 (action='delete', $item=1)...
Естественно для каждого действия $action надо проверять полномочия текущего пользователя - имеет ли он право что-то добавлять, менять или удалять. И отказывать ему в неверных действиях.

В общем, примерно так сегодня функционируют сайты.
Ну в самом простом случае в .htacess пишешь Deny from all а авторизуешь через пхп и если права юзера подходят то листаешь папку показываешь файлы либо если совсем не хочется заморачиваться с авторизацией то генеришь файл с юзерами .htpasswd группу admins и в .htaccess пишешь такую байду :
AuthType Basic
AuthName "Private zone. Only for administrator!"
AuthUserFile /usr/host/mysite/.htpasswd
AuthGroupFile /usr/host/mysite/group
require group admins

Но это только для апача на нгинксе конвертером соответственно сконвертировать можно в родной конфиг
А вообще это считается хреновая авторизация т к дырявая медленная и т п
Dostonjon Nasullayev
Dostonjon Nasullayev
59 848
Алексей Морозов это уже давно пройдено и забыто. в данном случае речь идет про динамические страницы.