|  | 46 | * [http://www.kawaz.jp/pukiwiki/?mod_rewrite ずんWiki - mod_rewrite] | 
                          |  | 47 | > クッキーを見てリダイレクトさせる。 | 
                          |  | 48 | * [http://d.hatena.ne.jp/y-kawaz/20071010/1192076717 mod_rewrite で RBL を使ったアクセス制御を行う - y-kawazの日記] | 
                          |  | 49 | > 以下のような仕様のプログラムを、ここでは /etc/httpd/conf/bin/rbl_map.pl というファイル名で作成します。 | 
                          |  | 50 | {{{#!perl | 
                          |  | 51 | #!/usr/bin/perl | 
                          |  | 52 | use strict; | 
                          |  | 53 | use Socket qw(inet_aton); | 
                          |  | 54 | my @RBL_SERVERS = ('niku.2ch.net'); | 
                          |  | 55 | $| = 1; | 
                          |  | 56 | while(<STDIN>) { | 
                          |  | 57 | chomp; | 
                          |  | 58 | my $ip = $_; | 
                          |  | 59 | my $revip = join('.', reverse(split(/\./, $ip))); | 
                          |  | 60 | my $status = 'HAM'; | 
                          |  | 61 | foreach my $server (@RBL_SERVERS) { | 
                          |  | 62 | if(inet_aton("$revip.$server")) { | 
                          |  | 63 | $status = "SPAM"; | 
                          |  | 64 | last; | 
                          |  | 65 | } | 
                          |  | 66 | } | 
                          |  | 67 | print "$status\n"; | 
                          |  | 68 | } | 
                          |  | 69 | }}} | 
                          |  | 70 | > httpd.conf に以下のように記述します。 | 
                          |  | 71 | {{{ | 
                          |  | 72 | RewriteEngine on | 
                          |  | 73 | RewriteMap rbl-map prg:/etc/httpd/conf/bin/rbl_map.pl | 
                          |  | 74 | RewriteCond %{REQUEST_URI} ^/rbltest/ | 
                          |  | 75 | RewriteCond ${rbl-map:%{REMOTE_ADDR}} SPAM | 
                          |  | 76 | RewriteRule (.*) SPAM [F] | 
                          |  | 77 | }}} |