PHP и htpasswd

У меня такая структура:

/home
/home/dir1
/home/dir2

Теперь, когда кто-то переходит в / home, у него спрашивают имя пользователя и пароль (в форме), и я устанавливаю информацию о сеансе в PHP для оставшихся файлов / home. Теперь / home / dir1 и / home / dir2 защищены htpasswd, но с тем же именем пользователя и паролем. Я не хочу, чтобы пользователь повторно вводил свое имя пользователя и пароль при переходе в / home / dir1 ... Кроме того, когда я выхожу из / home, я также хочу выйти из / home / dir1. Не могли бы вы посоветовать, как этого добиться?


person Alec Smart    schedule 03.04.2009    source источник
comment
Вам необходимо использовать тот же домен аутентификации (не уверен, что это правильное имя). Проверьте документы Apache. Но это не вопрос программирования.   -  person derobert    schedule 03.04.2009


Ответы (2)


Это должно быть поведение по умолчанию.

То есть, если вы используете файлы Apache и .htaccess для настройки HTTP-аутентификации, любые правила, которые вы применяете к каталогу, будут также применяться к его дочерним каталогам, и он будет рассматриваться браузером как единый вход в систему.

Если вы хотите, чтобы он действовал по-другому, то есть если вы хотите, чтобы некоторые разделы сайта обрабатывались как требующие полностью отдельного входа в систему, вы должны указать «область» для каждого раздела с помощью директивы AuthName в .htaccess. Дополнительная информация здесь. Однако, если вы этого не сделаете, это всегда будет рассматриваться как часть одного и того же входа в систему.

Суть HTTP-аутентификации заключается в том, что нет возможности «выйти из системы», по крайней мере, если браузер не предоставляет эту функцию. Единственный способ, которым большинство браузеров позволит вам выйти из системы, - это завершить сеанс браузера (то есть закрыть браузер). И да, как только вы это сделаете, вы выйдете из / home, / home / dir1, / home / dir2 и всех каталогов на всех сайтах / областях.

person thomasrutter    schedule 03.04.2009

В Apache, если обе папки имеют одинаковое AuthName и находятся на одном сайте, они должны использовать общий пароль.

В обоих каталогах может быть файл .htaccess, например:

AuthName "My Protect Folder"
AuthType basic
AuthUserFile /somewhere/htusers
require valid-user
person Jeff Clement    schedule 27.05.2009