У меня проблема примерно такая же. Я хочу закрыть доступ ко всем ЗИПам, но разрешить закачку рефератов, прайсов и т.п. То есть, обычно, небольших архивов.
Запрет ставится в PCRE, перечислением запрещенных расширений. Это легко, делается один раз и потом не меняется (разве что придумают новый архиватор с новым расширением).
Вопрос в том КАК РАЗРЕШИТЬ закачку избранных архивов? В сквиде это решается назначением двух ACL: запретить все архивы, кроме разрешеных. Причем, разрешающие правила описаны через PCRE, значит allow_urls не подходит. Я, например, разрешаю закачивать все архивы, в URL которых есть строка "price" или "referat".
allow_urls не подходит еще и из-за своей "глобальности". т.к. ее действие распространяется на все секции.
РЕШЕНИЕ!!! Если запрет описывается в PCRE, то и "бороться" с этим надо тоже в PCRE. Я не смог найти как в PCRE описать "все, кроме...". Все что описано в разных руководствах не срабатывало. Но, если объединить PCRE запрета и разрешения, вынести их ОТДЕЛЬНОЙ СЕКЦИЕЙ, поместить ее ПЕРЕД ЗАПРЕЩАЮЩЕЙ, то все становится на свои места.
Пример: ЕСТЬ правило "<DIGITAL>". Состоит из одной строки в PCRE, запрещает обращение к любым сайтам, если хост указан только IP-адресом. НУЖНО разрешить доступ к локальным страницам (например для настройки принт-сервера по веб-интерфейсу).
1. Создаем секцию "<DIGIT_ALLOW>" (например).
2. В pcre указываем что мы разрешаем -- маску локальных адресов, или в urls конкретный IP.
3. В конфиге РЕЖИКА, перед секцией "<DIGITAL>" пишем:
<DIGIT_ALLOW>
ban_dir /usr/local/etc/rejik3/banlists/DIGIT_ALLOW
url #URL#
log off
4. Перезапускаем РЕЖИК и получаем удовольствие от работы
5. Немного пошевелив мозгами, создаем подобные секции для архивов и МР3.
А уж кто получит доступ к разрешающей секции, это зависит от вашей фантазии.
ЗЫ Если честно, то у меня пока работает только <DIGIT_ALLOW>. Нет времени проверить как поведут себя более сложные правила. IMHO, проблем быть не должно.