我正在尝试为所有客户端请求实现一个临时公告页面,这意味着该页面将在几秒钟后消失,URL 将返回到原始客户端请求。我还尝试了 perl 中的 url_rewrite_program(如下所示)和deny_info(&允许 localhost)acl,但都失败了。有人对此有更好的想法吗?我真的需要你的帮助。谢谢!
#!/usr/bin/perl
use strict;
use warnings;
my @X;
my $url="";
$| = 1;
while (<>)
{
@X = split;
$url = $X[0];
print "302:http://announcement.txt\n";
sleep 5;
print "$url\n";
}
答案1
你有 squid,所以不要再尝试自己编写代码了,直接使用 squid 的内置启动页面功能。
来自 squid 页面的这个 3.2+ 示例将/etc/squid/splash.html
每小时显示一次启动页面(请参阅该页面以获取更多示例和完整说明,包括 3.2 之前的 squid 示例):
# mind the wrap. this is one line:
external_acl_type splash_page ttl=60 concurrency=100 %SRC /usr/local/sbin/squid/ext_session_acl -t 7200 -b /var/lib/squid/session.db
acl existing_users external splash_page
http_access deny !existing_users
# Deny page to display
deny_info 511:/etc/squid/splash.html existing_users