On Sat, 23 Jun 2001, Vyacheslav Chukin wrote:
> Использую реврайты типа
> RewriteRule ^/(.*)$ /script.php?name=$1
>
> Т.е. URL http://www.host.com/file.html
> - это результат работы скрипта
> script.php?name=file.html
>
>
> Необходимо сделать запароленные директории.
> Однако http://www.host.com/restricted/file.html
> это есть script.php?name=restricted/file.html,
> т.е. реально вызывается один и тот же файл script.php.
>
> Могу ли я каким-либо образом сделать
> разграничение доступа на уровне .htaccess или httpd.conf,
> а не в самом script.php?
>
> Ведь, насколько я понимаю, .htaccess работает на уровне реальных файлов,
> а не URL'ов?
>
> Подскажите пожалуйста, как быть?
Возможно, будет работать такая конструкция:
<Location /restricted/>
RewiteEngine on
RewriteRule ^/(.*)$ /script.php?name=$1
Require valid-user
тра-ля-ля про аутентификацию
</Location>
<Location />
RewiteEngine on
RewriteRule ^/(.*)$ /script.php?name=$1
</Location>
или, если не будет работать, то вторую часть можно записать так:
<FilesMatch \.html$>
RewiteEngine on
RewriteRule ^/(.*)$ /script.php?name=$1
</FilesMatch>
Но следует учесть, что реврайт будет происходить в фазе фиксап,
а не трансляции.
Игорь Сысоев
=============================================================================
= 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 =