Здравствуйте, уважаемые 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@mail.ru
# 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@mail.ru
# 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@lists.lexa.ru mailing list =
Mail "unsubscribe apache-talk" to majordomo@lists.lexa.ru if you want to quit.
= Archive avaliable at http://www.lexa.ru/apache-talk =