| 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 | }}} |