www\.sitename\.com/cgi/
# Добавьте сюда описания URL-адресов с баннерами
# размером 100x100
);
@various = qw (
www\.sitename\.com/cgi/
# Добавьте сюда описания URL-адресов с нестандартными
# размерами баннера
};
@popup_window = qw (
^http://members\.tripod\.com/adm/popup/.+html
^http://www\.geocities\.com/ad_container/pop\.html
^http://www\.geocities\.com/toto\?
# Добавьте сюда описания URL-адресов, с которых
# выскакивают всплывающие окна
);
# Описание расположения картинок
$b468_60 = "$YOURSITE/468_60.gif";
$b100_100 = "$YOURSITE/100_100.gif";
$various = "$YOURSITE/empty.gif";
$closewindow = "$YOURSITE/close.htm";
while (<>) {
($url, $who, $ident, $method) = /^(\S+) (\S+) (\S+) (\S+)$/;
$prev = $url;
# Проверка баннера 468x60
$url = $b468_60 if grep $url =~ m%$_%, @b468_60;
# Проверка баннера 100x100
$url = $b100_100 if grep $url =~ m%$_%, @bl00_100;
# Проверка баннера произвольного размера
$url = $various if grep $url =~ m%$_%, @various;
# Всплывающее окно
$url = $closewindow if grep $url =~ m%$_%, @popup_window;
# Отдельный сайт, не внесенный в список в начале файла
$url = "$YOURSITE/empty.gif" if $url =~ m%hitbox\.com/Hitbox\?;
if ($LOG and $url ne $prev) {
my ($sec, $min, $hour, $mday, $mon, $year) = localtime;
printf LOG "%2d.%02d.%2d %2d:%02d:%04d: %s\r\n",
$mday, $mon + 1, $year + 1900, $hour, $min, $sec,
"$who $prev > $url";
}
print "$url $who $ident $method\n";
}
close LOG if $LOG;
Сохраните эту программу в файле /usr/etc/redirector и установите для squid права на его исполнение. После этого добавьте в файл squid.conf следующую строку:
redirect_program /usr/local/etc/squid/redirector
Чтобы эта программа заработала, создайте на своем Web-сервере файлы со следующими именами:
□ 468_60.gif — картинка размером 468×60;
□ 100_100.gif — картинка размером 100×100;
□ empty.gif — картинка, которая будет заменять нестандартные баннеры. Лучше всего ее сделать размером 1×1 пиксель, чтобы она не испортила дизайн сайта;
□ close.htm — HTML-файл, который будет закрывать всплывающие окна. В нем нужно поместить всего лишь функцию, которая будет закрывать окно. Для этого используется JavaScript-функция window.close()
. Пример содержимого файла показан в листинге 9.3.
Все эти файлы должны лежать на Web-сервере в одной директории. Не забудьте в сценарии (в переменной $YOURSITE
) указать правильный путь к этому каталогу.
Я постарался снабдить код в листинге 9.2 комментариями. Если у вас есть опыт программирования на Perl, то дальнейшие действия вы выполните без проблем.
Вильям Л Саймон , Вильям Саймон , Наталья Владимировна Макеева , Нора Робертс , Юрий Викторович Щербатых
Зарубежная компьютерная, околокомпьютерная литература / ОС и Сети, интернет / Короткие любовные романы / Психология / Прочая справочная литература / Образование и наука / Книги по IT / Словари и Энциклопедии