条件指定アクセス拒否(ステータスコードを返す)
#! /usr/local/bin/ruby
arr = [ # アクセス拒否条件
# 特定ユーザーエージェント拒否の場合
[ENV['HTTP_USER_AGENT'], "DoCoMo"],
[ENV['HTTP_USER_AGENT'], "KDDI"],
[ENV['HTTP_USER_AGENT'], "Softbank"],
# 特定IPアドレス拒否の場合
[ENV['REMOTE_ADDR'], "111.222.333.444"],
# 特定リンク元拒否の場合
[ENV['HTTP_REFERER'], "https://www.webings.net/"]
]
arr.each { |k, v|
if k =~ /#{v}/
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
end
}
print "Content-type: text/html\n\n"
print <<END
<html>
<head>
<title>リダイレクト(条件指定)</title>
</head>
<body>
ようこそ!!<br>
</body>
</html>
END
exit
〔 実行する 〕