IMHO проще закрыть всю папку и .htaccess не нужен будет :)
Пропиши в виртуалхост:
<Location /admin>
AuthType Basic
AuthName admin
AuthUserFile "d:\Apache\conf\users_file"
AuthGroupFile "d:\Apache\conf\groups_file"
require group localhost-admin
</Location>
И создай в папке conf 2 файла (group_file и users_file).
В файле групп, для каждой группы есть строка такого вида:
localhost-admin: username anotherusername
А второй фаил содержит пароли для юзеров и создается (обновляется) с помощью htpasswd.exe
Если есть вопросы по настройки апачи для винды, то пиши на мыло или ICQ 67763009, помогу.
----- Original Message -----
From: "Artem Sokovtcev" <eika@xxxxxxx>
To: <apache-talk@xxxxxxxxxxxxx>
Sent: Wednesday, November 07, 2001 1:05 AM
Subject: [apache-talk] Access to directory ...
> Здравствуйте, уважаемые apache-гуру!
>
> Имею проблему по настройке Apache при работе совместно с .htaccess
>
> Помогите мне пожалуйста!! Буду Вам очень признателен!
>
> У меня используется Апач 1.3.14 под Windows. Он установлен на
> http://localhost. Файлы httpd.conf и .htaccess в конце этого письма.
>
> У меня стоит задача, чтоб обращение по адресу http://localhost/admin/
> заканчивалось выдачей мне индексного файла index.shtml.
> Само собой эта директория должна быть защищена с помощью .htaccess.
>
> "htdocs" - это корневая директория файлов сервера.
>
> Так вот. У меня в директории "admin" лежит один единственный индексный файл
> index.shtml. При обращении по адресу с указанием полного пути и имени файла
> (напр: http://localhost/admin/index.shtml) все в порядке - появляется окно
> идентификации (те .htaccess работает).
>
> А если обратиться к этой папке без указания названия файла (напр:
> http://localhost/admin/), то вместо запроса логина и пароля вылазит 401
> ошибка, хотя файл index.shtml указан в httpd.conf как индексный. Сразу хочу
> сказать, что с незащищенными директориями таких проблем нет, т.е. обращение
> к любой другой директории (напр: http://localhost/rus/) без указания в пути
> названия файла заканчивается выдачей мне индексного файла
> (напр:http://localhost/rus/index.shtml).
>
> Я уверен что проблема в неправильной настройке httpd.conf, но я не могу
> найти ошибку!!!
>
>
> ______________________________________________________
> ##
> ## httpd.conf -- Конфигурационный файл сервера Apache HTTP
> ##
> #
> # После того, как сервер просмотрит это файл, затем он будет смотреть
> # на srm.conf и access.conf. Если вы не хотите перезаписи параметров,
> # используйте команды ResourceConfig и/или AccessConfig.
> #
> # Конфигурационные параметры сгруппированы в три секции
> # 1. Команды, которые контролируют весь Apache сервер
> # 2. Команды, которые контролируют сервер по умолчанию (сервера 'main' или
> 'default'),
> # и действие которых не распространяется на области, контролируемые
> виртуальными серверами.
> # 3. Установки для виртуальных серверов, которые позволяют обрабатывать
> запросы для серверов,
> # которые располагаются на одном ip адресе, несмотря на то, что они
> обрабатываются одним
> # и тем же процессом.
> #
> # Во все имена и пути файлов, которые не начинаются с "/", будет выполнена
> подстановка
> # переменной ServerRoot. То есть, если вы указали путь "logs/foo.log" при
> установленном
> # ServerRoot в /usr/local/apache, то полный путь будет
> /usr/local/apache/logs/foo.log
> #
> ### Раздел 1: Общие настройки
> # Показывает тип запуска программы httpd - она может вызываться через inetd
> (inetd)
> # или как отдельный демон (standalone). По умолчанию вызывается как
> отдельный демон.
> # Режим inetd поддерживается только на Unix-платформах.
> ServerType standalone
>
> # ServerRoot директива устанавливает корневой каталог сервера (именно
> сервера, а не каталога,
> # из которого будет производиться чтение документов).
> # Обычно он содержит подкаталоги conf/ и logs/. Пути для других файлов
> конфигурации устанавливаются относительно этого каталога.
> # НЕ добавляйте слэш "/" в конец пути.
> ServerRoot "c:/Program Files/Apache Group/Apache"
>
> # PidFile директива устанавливает файл, в котором сервер записывает
> идентификатор процесса daemon.
> # PidFile используется только в standalone режиме.
> PidFile logs/httpd.pid
>
> # ScoreBoardFile - файл, используемый для сохранения внутренней информации
> сервера. Не все
> # архитекруры требуют этот файл. Но если он нужен - Apache сам создаст этот
> файл.
> # ScoreBoardFile logs/apache_status
>
> # Время в секундах, по истечению которого, при отсутствии запросов сервер
> прерывает связь с клиентом.
> Timeout 300
>
> # Разрешать (On) или нет (Off) множественные запросы через одно TCP
> соединение.
> KeepAlive On
>
> # Максимальное количество запросов через одно TCP соединение.
> MaxKeepAliveRequests 100
>
> # Время ожидания следующего запроса в секундах.
> KeepAliveTimeout 15
>
> # Максимальное количество запросов, который обрабатывает процесс до
> завершения работы.
> MaxRequestsPerChild 0
>
> # Listen - позволяет вам заставить Apache прицепляться к указанному ip
> адресу и/или порту в дополнение к установкам по умолчанию.
> #Listen 3000
> #Listen 12.34.56.78:80
>
> # Количество одновременных нитей (к примеру, запросов), разрешённых
> сервером.
> # Устанавливайте значение этого параметра в соответсвии с загруженностью
> сервера.
> # Большое количество одновременных запросов притормозит сервер.
> # Так что выбирайте этот параметр в соответсвии с количеством системных
> ресурсов, доступных серверу. По умолчанию - 15
> ThreadsPerChild 25
>
> # Подгрузка модуля, помечающего выдаваемые файлы как устаревшие немедленно
> после выдачи (чтобы они не кэшировались в браузере)
> LoadModule expires_module modules/ApacheModuleExpires.dll
> ExpiresActive On
> ExpiresByType text/html "access plus 5 seconds"
> ExpiresByType text/plain "access plus 5 seconds"
> ExpiresByType image/gif "access plus 5 seconds"
> ExpiresByType image/jpeg "access plus 5 seconds"
> ExpiresByType text/css "access plus 5 seconds"
> ExpiresByType application/x-javascript "access plus 5 seconds"
> ExpiresByType application/x-httpd-php "access plus 5 seconds"
> ExpiresByType application/x-httpd-php-source "access plus 5 seconds"
>
> # Проверка правильности URL'ов 'на лету' - сервер пытается исправлять ошибки
> в УРЛах самостоятельно.
> # Это полезно, когда вы используете Apache для тестирования сайта. Иначе
> выкиньте этот блок на фиг.
> # LoadModule speling_module modules/ApacheModuleSpeling.dll
> # CheckSpelling On
>
> # Подгрузка модуля получения информации о состоянии Apache через браузер
> # Наберите http://вашсервер/server-status
> # и/или http://вашсервер/server-info и радуйтесь
> LoadModule status_module modules/ApacheModuleStatus.dll
>
> # ExtendedStatus указывает серверу генерировать "полную" статусную
> информацию
> # (ExtendedStatus on) или только основную (ExtendedStatus Off) при вызове
> обработчика
> # "server-status". По умолчанию Off.
> ExtendedStatus On
>
> # Подгружается модуль, обеспечивающий работу "server-status" и "server-info"
> LoadModule info_module modules/ApacheModuleInfo.dll
> <Location /server-status>
> SetHandler server-status
> Order allow,deny
> Allow from all
> </Location>
> <Location /server-info>
> SetHandler server-info
> Order allow,deny
> Allow from all
> </Location>
>
> ### Раздел 2: Конфигурация основного сервера
> # Эти команды устанавливают реакцию сервера на запросы, которые не
> обрабатываются
> # установками <VirtualHost>. Так же эти установки являются установками по
> умолчанию для всех определений в <VirtualHost>.
> # Все эти команды вы можете разместить и в внутри <VirtualHost>. В этом
> случае параметры будут переписаны на значения,
> # указанные там.
> # Если параметр ServerType установлен в inetd, то следующие команды до
> ServerAdmin не будут иметь никакого эффекта.
> #
> # Port - номер порта, на котором сервер будет принимать запросы. Для портов
> меньше 1024 вы должны обладать
> # правами root при первоначальном запуске.
> # См. /etc/services для списка некоторых определенных портов; стандартный
> порт для http протокола - 80.
> Port 80
>
> # Email админа подставляется в сообщения об ошибках
> ServerAdmin eika@xxxxxxx
>
> # ServerName директива устанавливает hostname сервера; это используется
> только для переадресации URLs.
> # Если она не определена, то сервер пытается вывести ее из собственного
> IP-адреса, но это может работать не надежно,
> # или может не возвращать привилегированное hostname.
> ServerName localhost
>
> # Каталог, из которого будет производиться чтение документов. По умолчанию,
> все документы берутся из этого каталога.
> DocumentRoot "c:/Program Files/Apache Group/Apache/htdocs"
>
> # Каждый каталог, до которого сервер имеет доступ, может быть
> сконфигурирован по своему.
> # Значения действующие в каталоге, распространяются и на все его
> подкаталоги, если не указано иное.
> # По умолчанию настройки не устанавливают сколь-нибудь высокий уровень
> безопастности.
> # Каждый каталог, к которосу имеет доступ Apache должен быть внимательно
> описан
> # и в нём должны быть разрешены/запрещены те службы, которые будут
> обрабатывать документы в данном каталоге (и его подкаталогах).
> # Запомните, что начиная с этой точки, вы должны разрешить использование
> # каждой функции, которую вы планируете использовать.
> # Значения могут быть None, All или любая комбинация Indexes, Includes,
> FollowSymLinks ExecCGI или MultiViews
> # Запомните, что значение MultikViews должно быть указано отдельно -
> "Options All" не включает его.
> <Directory />
> Options Indexes Includes FollowSymLinks MultiViews
> AllowOverride None
> </Directory>
>
> # Это значение должно быть заменено на то, куда указывает DocumentRoot.
> <Directory "c:/Program Files/Apache Group/Apache/htdocs">
> Options Indexes Includes FollowSymLinks MultiViews
> AllowOverride None
> Order allow,deny
> Allow from all
> </Directory>
>
> # UserDir - название каталога, которые располагается в домашних каталогах
> # пользователей и к которому будет произведено обращение в ответ на запрос
> # http://server/~user
> # UserDir "c:/Program Files/Apache Group/Apache/users/"
>
> # Типа список индексных файлов
> DirectoryIndex index.shtml index.php index.html index.htm
>
> # AccessFileName - имя файла, в котором будут располагаться команды
> управления доступом
> AccessFileName .htaccess
> <Files .htaccess>
> Order allow,deny
> Deny from all
> </Files>
>
> # Разрешает использование коротких имен в URL'ах. Удобно при использовании в
> Intranet-серверах.
> # Если включено (on), преобразует что-то типа http://www/stat в
> http://www.твой-домен.ru/stat,
> # если отключено (off), преобразования не происходит.
> UseCanonicalName Off
>
> # определяет полный или относительный путь к файлу mime.types. Путь по
> умолчанию: conf/mime.types
> TypesConfig conf/mime.types
>
> # Этот параметр определяет MIME тип документа по умолчанию, передаваемого
> клиенту
> # в случае невозможности автоматического распознавания. Если на вашем
> сервере находятся в основном текстовые документы,
> # разумным выбором будет text/plain. Если же на вашем сервере больше
> двоичной информации, вам будет удобнее оставить
> # application/octet-stream чтобы не напрягать браузер отображением картинок,
> музыки и т.д. в текстовом виде.
> DefaultType text/plain
> <IfModule mod_mime_magic.c>
> MIMEMagicFile conf/magic
> </IfModule>
>
> # Определяет, будут ли записываться в логи имена (on) или только ip(off)
> хостов, заходящих на сайт. По умолчанию off.
> HostnameLookups Off
>
> # Директива файла регистрации ошибок устанавливает имя файла, в котором
> сервер регистрирует любые ошибки
> # с которыми он сталкивается. Если имя файла не начинается с символа слеш
> (/), то путь к файлу
> # устанавливается относительно ServerRoot.
> ErrorLog logs/error.log
>
> # Контролирует количество сообщений, записываемых в error.log.
> # Возможные значения: debug, info, notice, warn, error, crit, alert, emerg.
> По умолчанию - warn.
> LogLevel warn
>
> # Описание различных форматов записи логов. Имя формата используется в
> директиве CustomLog.
> LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\""
> combined
> LogFormat "%h %l %u %t \"%r\" %>s %b" common
> LogFormat "%{Referer}i -> %U" referer
> LogFormat "%{User-agent}i" agent
>
> # Расположение и формат файлов, в которые пишется информация о скачанном.
> # Если вы не определите ни одного файла логов в <VirtualHost>, все записи
> # попадут в этот файл, Если определите, то записи для виртуальных серверов
> # в этот файл не попадут.
> CustomLog logs/access.log common
>
> # Если вы желаете записывать в лог файлы браузеры пользователй и указания,
> откуда
> # пришел пользователь, то раскомментируйте следующие команды.
> CustomLog logs/referer_log referer
> CustomLog logs/agent_log agent
>
> # Подпись сервера - возможные варианты Off | On | EMail
> ServerSignature on
>
> # Синонимы - добавте так много синонимов для сервера, сколько пожелаете.
> Формат Alias синоним реальное имя.
> # Запомните, что если вы включаете заключительный слэш "/" в синоним, то
> сервер будет требовать, чтобы
> # "/" присутствовал и в УРЛе. К примеру, /icons не является ничьим
> синонимом, только /icons/
> # <IfModule mod_alias.c>
>
> # Основная папка cgi-bin. Здесь надо добавлять слэш "/" к пути к папке
> скриптов (так делают авторы Апача).
> ScriptAlias /cgi-bin/ "c:/Program Files/Apache Group/Apache/cgi-bin/"
> <Directory "c:/Program Files/Apache Group/Apache/cgi-bin">
> AllowOverride None
> Options ExecCGI
> </Directory>
>
> # А где у нас живёт PHP?
> ScriptAlias /php/ "c:/php/"
> <Directory "c:/php">
> AllowOverride None
> Options ExecCGI
> </Directory>
>
> # Файлы с какими расширениями считаются у нас PHP-скриптами?
> AddType application/x-httpd-php .php
> AddType application/x-httpd-php .php3
> AddType application/x-httpd-php .phtml
> AddType application/x-httpd-php-source .phps
> Action application/x-httpd-php /php/php.exe
> Action application/x-httpd-php-source /php/php.exe
>
> # Файлы с какими расширениями считаются у нас CGI-скриптами?
> AddHandler cgi-script .cgi .pl .bat .exe
>
> # В каких файлах обрабатываются SSI-директивы?
> AddType text/html .shtml
> AddHandler server-parsed .shtml
> AddHandler server-parsed .shtm
>
> # В каких файлах обрабатываются Parser-директивы? (см. www.parser.ru)
> AddType parsed-html .html
> Action parsed-html /cgi-bin/parser2.exe
> <Files ~ "\.cfg$">
> Order allow,deny
> Deny from all
> </Files>
>
> # Как показывать каталог - стандартно (standartd) или с иконкам
> (FancyIndexing)?
> IndexOptions FancyIndexing
>
> # IndexIgnore указывает серверу, какие файлы необходимо исключить из списка
> показываемых
> IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t
>
> # AddEncoding позволяет вам указать тип файла, который позволит некоторым
> браузерам распаковывать информацию
> # на лету. Замечание - не все браузеры поддерживают эту опцию.
> AddEncoding x-compress Z
> AddEncoding x-gzip gz tgz
>
> # Что мы говорим посетителю, ежели у нас Error XXX ?
> ErrorDocument 400 "<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML
> 2.0//EN"><html><body><H1>Apache Error 400:</H1><blockquote><code>Извините,
> но ваш браузер выдал неполный или ошибочный запрос. Пожалуйста, проверьте
> правильность работы вашего программного
> обеспечения.</code></blockquote></body></html>
> ErrorDocument 401 "<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML
> 2.0//EN"><html><body><H1>Apache Error 401:</H1><blockquote><code>Извините,
> но доступ к странице закрыт. Проверьте правильность ввода имени и
> пароля.</code></blockquote></body></html>
> ErrorDocument 403 "<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML
> 2.0//EN"><html><body><H1>Apache Error 403:</H1><blockquote><code>Извините,
> но у вас нет прав для просмотра этой страницы.<br>В доступе
> отказано.</code></blockquote></body></html>
> # ErrorDocument 404 "<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML
> 2.0//EN"><html><body><H1>Apache Error 404:</H1><blockquote><code>Извините,
> но требуемая страница не найдена на
> сервере.</code></blockquote></body></html>
> ErrorDocument 500 "<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML
> 2.0//EN"><html><body><H1>Apache Error 500:</H1><blockquote><code>Извините,
> но при выполнении скрипта сервером произошла ошибка.<br>Попробуйте
> обратиться к странице позднее.</code></blockquote></body></html>
> ErrorDocument 404 /404.html
>
> # запрещает постоянные соединения браузерам, которые не поддерживают их.
> BrowserMatch "Mozilla/2" nokeepalive
>
> # запрещает MSIE 4.0b2 отдавать заголовки в стандарте HTTP/1.1, так как
> поддержка этого стандарта некорректна в данной версии
> BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
>
> # запрещает ответы по стандарту HTTP/1.1 тем браузерам, которые не понимают
> ответы в этом стандарте.
> BrowserMatch "RealPlayer 4\.0" force-response-1.0
> BrowserMatch "Java/1\.0" force-response-1.0
> BrowserMatch "JDK/1\.0" force-response-1.0
>
> ### Раздел 3: Виртуальные сервера
> # Если вы желаете поддерживать много доменов на своей машине, вы должны
> использовать <VirtualHost> для их определения.
> # Многие виртуальные сервера не должны беспокоиться о том, что они все
> находятся на одном ip адресе.
> # Такие значения помечаются *
> # Пожалуйста, обратите внимание на http://www.apache.org/docs/vhosts/ для
> получения дополнительной информации.
> # Вы можете использовать в коммандной строке опцию -S для проверки
> конфигурации ваших виртуальных серверов.
> # Используем хостинг виртуальных серверов, основанный на именах.
> # Почти любая команда Apache может использоваться внутри <VirtualHost>
> <VirtualHost 127.0.0.2>
> # Имя сервера, с которым в файле HOSTS связан IP-адрес 127.0.0.2
> ServerName www.asia-pacific.ru
> ServerAdmin eika@xxxxxxx
> # Cледите, в какую строну направлены косые черты!
> DocumentRoot "c:/Program Files/Apache Group/Apache/htdocs"
> <Directory "c:/Program Files/Apache Group/Apache/htdocs">
> Options Includes FollowSymLinks MultiViews
> AllowOverride None
> Order allow,deny
> Allow from all
> </Directory>
> ScriptAlias /cgi-bin/ "c:/Program Files/Apache Group/Apache/cgi-bin/"
> ErrorLog "logs/error.log"
> # А в этот файл сервер пишет, какие файлы он выдаёт браузеру. У него есть
> сволочная привычка быстро разрастаться
> # до чудовищных размеров, не забывайте его периодически чистить.
> CustomLog "logs/custom.log" common
> </VirtualHost>
> _______________________________________________
>
> .htaccess
> #################################
>
> AuthName "Input password"
> AuthType Basic
> AuthUserFile "C:/Program Files/Apache Group/Apache/htdocs/admin/.htpasswd"
> <Files *.*>
> require valid-user
> </Files>
> #################################
>
>
>
> With the best regards,
> Artem Sokovtcev
>
>
> =============================================================================
> = Apache-Talk@xxxxxxxxxxxxx mailing list =
> Mail "unsubscribe apache-talk" to majordomo@xxxxxxxxxxxxx if you want to quit.
> = Archive avaliable at http://www.lexa.ru/apache-talk =
>
>
=============================================================================
= Apache-Talk@xxxxxxxxxxxxx mailing list =
Mail "unsubscribe apache-talk" to majordomo@xxxxxxxxxxxxx if you want to quit.
= Archive avaliable at http://www.lexa.ru/apache-talk =
"Russian Apache" includes software developed
by the Apache Group for use in the Apache HTTP server project
(http://www.apache.org/) See
Apache LICENSE.
Copyright (C) 1995-2001 The Apache Group. All rights reserved.
Copyright (C) 1996 Dm. Kryukov; Copyright (C)
1997-2009 Alex Tutubalin. Design (C) 1998 Max Smolev.