1) Создать файл .htaccess (Важно: с точкой в начале названия файла!), и поместить туда следующую информацию (если в этой директории уже есть такой файл, и там что-то написано, просто добавьте это в конец файла):
Кажется так, но точно я не помню:
AuthUserFile /ИМЯ_СЕРВЕРА/ПУТЬ/admin.pwd - зависит от сервера
AuthName "ИМЯ_РЕСУРСА"
AuthType BASIC
<limit GET POST>
order deny,allow
allow from all
require valid-user
</limit>
Где
ИМЯ_СЕРВЕРА - имя вашего сервера (без www), например, если адрес сайта
www.test.ru, то писать надо будет test.ru
ПУТЬ - путь к этой директории, например, если вы хотите запаролировать директорию
www.test.ru/pass/custom/, то писать надо будет pass/custom
Создать файл admin.pwd. Формат файла следующий:
логин1:пароль1
логин2:пароль2
(Важно: последняя строка должна быть пустая!!!).
2) Проверять переменную окружения HTTP_REFERER, но это ненадёжно, т.к. её можно подделать.
Лучше проверять сессию.