У вас есть два варианта: <Location>
или <Directory>
в конфигурации сервера (они не могут быть помещены в .htaccess), или .htaccess
файл
<Location /admin>
Order Deny,Allow
Deny from All
Allow from your.ip.addr.ess
AuthType Basic
AuthName "Admin page. Keep out"
AuthUserFile /some/path/htpasswd
AuthGroupFile /dev/null
Require valid-user
</Location>
Location
позволяет ограничить по URL-адресу, который будет соответствовать независимо от того, где файлы физически хранятся на сервере, но также может быть обойдено, если вы разрешаете симлинкам следовать. Directory
работает одинаково, но совпадает с физическим интерфейсом на стороне сервера, независимо от того, как обращается к каталогу/файлу. С Location
вы можете указать абсолютный путь, включая файл, для соответствия, если вы хотите ограничить только один файл.
С помощью .htaccess вы по существу дублируете директивы Directory
, но можете сделать это, не отскакивая от сервера, чтобы загрузить новую конфигурацию, за счет .htaccess, который необходимо разобрать для каждого запроса.
Для защиты административных сценариев лучше не полагаться только на защиту паролем, поэтому я добавил фильтр IP-адреса (Order/Deny/Allow). Лучшая безопасность заключается в том, чтобы поместить сценарии администратора в совершенно отдельный домен (даже если он все еще размещен на том же физическом сервере), поэтому кто-то, ковыряющий в случайных URL-адресах на главном сайте, не найдет административный раздел.
+1 для блокировки IP-адресов и ясного примера. –