Иногда случается, что ограничиваться одним редиректором не получается. В этот случае можно использовать стандартные средства *nix систем - pipe.

Например вы хотите использовать SAMS совместно с Rejik. Однако в такой конфигурации часто возникают проблемы с ограничением работы пользователей. Я в этом случае сделал просто - баннеры и запрещенные сайты (т.е. основную работу редиректора) у меня выполняет Rejik, а редиректор SAMS блокирует пользователей.

Как это реализуется? Очень просто, для начала нужно понять как работает редиректор. Squid запускает процесс редиректора, и по мере необходимости в stdin редиректора пишет строки запроса. На что редиректор согласуясь со своими правилами либо меняет url в этой строке, либо нет и выдает её в stdout. Посему тут мы спокойно можем применить перенаправление, чтобы stdout из первого редиректора направлялся в stdin второго. Вот простой пример реализующий это:

#!/bin/bash

/usr/local/bin/samsredir | /usr/local/rejik3/redirector /usr/local/rejik3/redirector.conf

Сначала данные обрабатывает samsredir, затем Rejik. Т.о. баннеры и запрещенные url блокируются rejik'ом, а если пользователь отключен в SAMS, то он будет заблокирован еще до режика.

Сохраняем этот скрипт скажем как /usr/local/bin/redir, не забывая дать права на запуск. В настройках sams у меня лично редиректором остался Rejik (samsredir при это все-равно продолжает работать корректно). В конфиге Squid'a меняем redirector_program на /usr/local/bin/redir и реконфигурируем Squid (из SAMS'a или же squid -k reconfigure).