Пытаюсь закрыть доступ к определенной директории через .htaccess - ничего не выходит, страничка открывается без запроса ввода пароля.
В httpd.conf:
AccessFileName .htaccess
Directory "/usr/local/www/blabla">
Options Indexes FollowSymLinks ExecCGI
AllowOverride All
AuthType .htaccess
AllowOverride AuthConfig
Order allow,deny
Allow from all
</Directory>В директории /usr/local/www/blabla лежит файл .htaccess, в котором:
AuthType Basic
AuthName "Closed area"
AuthUserFile /usr/local/etc/webpass
Require user putin
<Limit GET POST>
require valid-user
</Limit>
RewriteBase /usr/local/www/blabla
RewriteRule ^.htaccess$ - [F]
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([a-z_]+\.php)$ index.php?db=$1&table=$2&target=$3 [R]
RewriteRule ^([a-zA-Z0-9_]+)/([a-z_]+\.php)$ index.php?db=$1&target=$2 [R]
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)$ index.php?db=$1&table=$2 [R]
RewriteRule ^([a-zA-Z0-9_]+)$ index.php?db=$1 [R]
RewriteEngine OnТ.е. врде все сделал правильно, само собой - файлик с паролями был создан.
И все равно при заходе на страничку пускает без запроса пароля.
Куда еще копать?
>Пытаюсь закрыть доступ к определенной директории через .htaccess - ничего не выходит,
>страничка открывается без запроса ввода пароля.
>В httpd.conf:
>AccessFileName .htaccess
>Directory "/usr/local/www/blabla">
> Options Indexes FollowSymLinks ExecCGI
> AllowOverride All
> AuthType .htaccessэто что?
http://httpd.apache.org/docs/1.3/mod/core.html#authtype> AllowOverride AuthConfig
> Order allow,deny
> Allow from all
></Directory>
>
>В директории /usr/local/www/blabla лежит файл .htaccess, в котором:
>AuthType Basic
>AuthName "Closed area"
>AuthUserFile /usr/local/etc/webpass
>Require user putin
><Limit GET POST>
>require valid-user
></Limit>
>RewriteBase /usr/local/www/blabla
>RewriteRule ^.htaccess$ - [F]
>RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([a-z_]+\.php)$ index.php?db=$1&table=$2&target=$3 [R]
>RewriteRule ^([a-zA-Z0-9_]+)/([a-z_]+\.php)$ index.php?db=$1&target=$2 [R]
>RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)$ index.php?db=$1&table=$2 [R]
>RewriteRule ^([a-zA-Z0-9_]+)$ index.php?db=$1 [R]
>RewriteEngine On
>
>Т.е. врде все сделал правильно, само собой - файлик с паролями был
>создан.
>И все равно при заходе на страничку пускает без запроса пароля.
>Куда еще копать?
>> AuthType .htaccess
>
>это что?
>http://httpd.apache.org/docs/1.3/mod/core.html#authtype
>
Прошу прощения, когда печатал - опечатался. На самом деле в httpd.conf прописано
AccessFileName .htaccess
>>> AuthType .htaccess
>>
>>это что?
>>http://httpd.apache.org/docs/1.3/mod/core.html#authtype
>>
>Прошу прощения, когда печатал - опечатался. На самом деле в httpd.conf прописано
>
>AccessFileName .htaccessмдя, больше нигде не опечаталиьс? точно?
можно еще показать кусочек access_log-а в котором виден доступ к закрываемой папке
>>>> AuthType .htaccess
>>>
>>>это что?
>>>http://httpd.apache.org/docs/1.3/mod/core.html#authtype
>>>
>>Прошу прощения, когда печатал - опечатался. На самом деле в httpd.conf прописано
>>
>>AccessFileName .htaccess
>
>мдя, больше нигде не опечаталиьс? точно?
>можно еще показать кусочек access_log-а в котором виден доступ к закрываемой папке
>
Да нет там ничего криминального -
- - [13/Sep/2006:10:28:34 +1100] "GET /assa/themes/original/img/b_import.png HTTP/1.0" 200 310
- - [13/Sep/2006:10:28:34 +1100] "GET /assa/themes/original/img/s_lang.png HTTP/1.0" 200 422
- - [13/Sep/2006:10:28:34 +1100] "GET /assa/themes/original/img/s_theme.png HTTP/1.0" 200 737
- - [13/Sep/2006:10:28:34 +1100] "GET /assa/themes/original/img/s_warn.png HTTP/1.0" 200 261
IMHO здесь собака порылась
><Limit GET POST>
>require valid-user
></Limit>Попробуй убери Limit и оставь
require valid-user
>В httpd.conf:
>AccessFileName .htaccess
>Directory "/usr/local/www/blabla">
^^ Первый символ д.б. "<" (допускаю, что опечатались)...
> Options Indexes FollowSymLinks ExecCGI
> AllowOverride All
> AccessFileName .htaccess
у вас глобально такая опция уже стоит, зачем еще раз ее писать, запутаетесь потом...
> AllowOverride AuthConfig
А зачем тогда AllowOverride All ранее? Что-нибудь одно оставьте...
> Order allow,deny
> Allow from all
></Directory>
>В директории /usr/local/www/blabla лежит файл .htaccess, в котором:
>AuthType Basic
>AuthName "Closed area"
>AuthUserFile /usr/local/etc/webpass__________________________
>Require user putin
><Limit GET POST>
>require valid-user
></Limit>
______вместо этого блока оставьте require valid-user>RewriteBase /usr/local/www/blabla
>RewriteRule ^.htaccess$ - [F]
>RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([a-z_]+\.php)$ index.php?db=$1&table=$2&target=$3 [R]
>RewriteRule ^([a-zA-Z0-9_]+)/([a-z_]+\.php)$ index.php?db=$1&target=$2 [R]
>RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)$ index.php?db=$1&table=$2 [R]
>RewriteRule ^([a-zA-Z0-9_]+)$ index.php?db=$1 [R]
>RewriteEngine On
Да, до кучи еще заметка. В вашем httpd.conf есть
Directory "/usr/local/www/blabla">
Options Indexes FollowSymLinks ExecCGI
а судя по правилам mod_rewrite в той директории лежат пхп-скрипты.
Для php опция ExecCGI не нужна. Нужна она только если у вас есть perl или c-программы в той папке, которые нужно запускать. Но лучше всего хранить их отдельно в папке, определенной как ScriptAlias, ну тот же cgi-bin (или обзовите как хотите). Это в плане безопасности... Да и в любом случае лучше не мешать котлеты с мухами, пусть все лежит там, где оно должно...
>Куда еще копать?Если все равно не заработает, попробуйте временно отключить mod_rewrite для этой директории. Точно не скажу, а в книжку не посмотреть сейчас, но может mod_rewrite отрабатывает (и перенаправляет) раньше, чем апач спросит парольку... но это так, просто предположение...