Регистрация...

Eserv Forum / E3 / Eserv 3 Web and FTP Servers Support / Ещё раз про .htaccess (или как разделить доступ по IP)

imported // (v1)
Продукты и услуги Скачать Документация Купить Поддержка Форумы Партнёрам Статьи О компании
Новости
12.10.2009
Переезд завершен
Собственно вопрос таков и есть.
В рамках веб-сайта есть область, куда надо ограничить доступ по IP-адресу. Именно не логин/пароль а "анонимус" с адреса такого-то.
Например:
.../Folder1/ — 192.168.100.0/255.255.255.0
.../Folder2/ — 192.168.200.0/255.255.255.0

В случае с апачем я просто кладу искомую Folder файло .htaccess с правилом:
Order deny,allow
Deny from all
Allow from 192.168.100.0/255.255.255.0

А в случае с Eserv — что надо вставить в CustomOnRequest.rules.txt?
Или ещё куда?
 
Комментарии к этой версии (26.11.2008 11:52) [~pavlad] 491ba634
АвторДатаТекстtags
pig26.11.2008 12:48
Если у вас стандартный конфиг, то через CustomOnRequest.rules.txt. Если PigMail/PigProxy, то через управление доступом, там можно использовать в дополнительном условии выражение такого вида
PeerIP:Mask= 192.168.100.0:255.255.255.0
собственно, это же и в CustomOnRequest пойдёт.
imported
pavlad26.11.2008 16:22
Извиняюсь за несообразительность, но нельзя-ли с примером сразу.
Вот к примеру, если имеем

Uri /mmm1/* | VirtualRoot: D:\CP\Folder1\
Uri CP/mmm1/* | VirtualRoot: D:\CP\Folder1\
Uri /mmm2/* | VirtualRoot: D:\CP\Folder2\
Uri CP/mmm2/* | VirtualRoot: D:\CP\Folder2\
Uri /CP/ | DocumentRoot: D:\CP\ Replace /

...то — как будет выглядеть запись с ограничением по IP для /mmm2/?

и вообще, где можно прочитать поподробней про синтаксис CustomOnRequest.rules.txt
естественно с коментариями. А то, извиняюсь, тёмный лес получается. И каждый — кому надо чуть в сторону от WWWroot чудим кто-во-что горазд.
imported
pig26.11.2008 16:33
Я бы так примерно сделал:
Uri /mmm2/* [IF] PeerIP:Mask= 192.168.100.0:255.255.255.0 0= | Forbidden \EOF VirtualRoot: D:\CP\Folder2\ [THEN]


Про синтаксис всего два слова: это Форт. И примечание, что не базовый, конечно, а сильно и специально расширенный в коде самого acWEB. Каковой код предлагается искать на http://acweb.cvs.sourceforge.net/acweb/
imported
pavlad28.11.2008 12:03
Итого пробуем нарисовать по подобию:

Uri /mmm1/* | VirtualRoot: D:\CP\Folder1\
[IF]
    PeerIP:Mask= 192.168.100.0:255.255.255.0 0= | Forbidden \EOF
    VirtualRoot: D:\CP\Folder1\
[THEN]
Uri CP/mmm1/* | VirtualRoot: D:\CP\Folder1\
[IF]
    PeerIP:Mask= 192.168.100.0:255.255.255.0 0= | Forbidden \EOF
    VirtualRoot: D:\CP\Folder1\
[THEN]
Uri /mmm2/* | VirtualRoot: D:\CP\Folder2\
[IF]
    PeerIP:Mask= 192.168.200.0:255.255.255.0 0= | Forbidden \EOF
    VirtualRoot: D:\CP\Folder2\
[THEN]
Uri CP/mmm2/* | VirtualRoot: D:\CP\Folder2\
[IF]
    PeerIP:Mask= 192.168.200.0:255.255.255.0 0= | Forbidden \EOF
    VirtualRoot: D:\CP\Folder2\
[THEN]

  • вроде работает. С разных сетей теперь без запросов паролей могут заходить в свои папки и "не заходить" в чужие.
Теперь следующий вопрос: а если клиентов (подсетей) нн-ое количество. Как их развести в эти два разных ресурса? Причём желательно чтобы при попадании в "чужой" ресурс клиент получал в ответ не Forbidden, какую-нить служебную страницу. На худой конец перенаправление на wwwroot.
Или для каждой подсети полностью описывать по схеме
Uri...Virtual...[IF]...[THEN]?

И ещё: когда в начале строки стоит \ это значит что правило в этой строке отключено?
imported
pig28.11.2008 13:15
Смотрите внимательнее на образец. У вас лишнее:
| VirtualRoot: D:\CP\Folder1\
после Uri .....
Поэтому что там проверяется в [IF] — большая загадка, результат проверки со стека уже снят.

pavlad пишет: желательно чтобы при попадании в "чужой" ресурс клиент получал в ответ не Forbidden, какую-нить служебную страницу.

Так сочините эту страницу и делайте редирект на неё вместо Forbidden.

Backslash — это символ комментария.
imported
Работает на Eserv/5.05555 (05.06.2016)