batva

crazy administrator | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору имеем типа такой htaccess Код: AuthUserFile .htpasswd AuthName "Access" AuthType Basic <limit GET> require user batva </limit> | задача воздействовать не на всю папку, а только на некоторые урлы. Например при наборе test.cgi?id=4 запрашиваем сетевой пароль, а при наборе test.cgi?id=6 либо любом другом пароль не просим и пускаем всех. есть такая штука как SetEnvIf Она устанавливает переменную, если выполнено условие. Вот так запрещаем доступ всем, а разрешаем только мозилам. Код: SetEnvIf User-Agent ^Mozilla VARIABLE <Directory /> Order Deny,Allow Deny from all Allow from env=VARIABLE </Directory> | вместо User-Agent вверху я могу юзать REQUEST_URI и проверяя урл выставлять переменную. Но как мне потом проверить эту переменную? Как мне выполнять этот блок, только когда переменная установлена в истину? Другими словами мне нужно что то в этом духе Код: IF VARIABLE THEN AuthUserFile .htpasswd AuthName "Access" AuthType Basic <limit GET> require user batva </limit> END IF | Добавлено кстати, вот такой вариант не пашет. Код: SetEnvIf Request_URI "\.cgi$" TEST=ok <IfDefine TEST> AuthUserFile .htpasswd AuthName "Access" AuthType Basic <limit GET> require user batva </limit> </IfDefine> | Тут переменная окружения TEST устанавливается, ее потом видно, Код: #!/usr/bin/perl use CGI qw(:header); print header(); while (($key, $value)=each(%ENV)){ print"$key => $value<br>"; } | но вот <IfDefine TEST> не работает. | Всего записей: 12593 | Зарегистр. 07-01-2001 | Отправлено: 07:38 31-05-2002 | Исправлено: lynx, 07:24 31-08-2003 |
|