条件指定アクセス拒否(ステータスコードを返す)
#! /usr/local/bin/perl @arr = ( # アクセス拒否条件 # 特定ユーザーエージェント拒否の場合 [$ENV{'HTTP_USER_AGENT'}, "DoCoMo"], [$ENV{'HTTP_USER_AGENT'}, "KDDI"], [$ENV{'HTTP_USER_AGENT'}, "Softbank"], # 特定IPアドレス拒否の場合 [$ENV{'REMOTE_ADDR'}, "123.456.789.123"], # 特定リンク元拒否の場合 [$ENV{'HTTP_REFERER'}, "https://www.webings.net/"] ); for($i = 0 ; $i < @arr ; $i++) { if($arr[$i][0] =~ $arr[$i][1]) { print "Status: 403 Forbidden\n\n"; # ステータスコード403を返す場合 # print "Status: 404 Not Found\n\n"; # ステータスコード404を返す場合 # print "Status: 500 Internal Server Error\n\n"; # ステータスコード500を返す場合 exit; } } print "Content-type: text/html\n\n"; print <<END; <html> <head> <title>条件指定アクセス拒否</title> </head> <body> ようこそ!!<br> </body> </html> END exit;
〔 実行する 〕