試してみた。SecurityErrorが出た。リンク先の ruby-1.9.1とは違い、こちらは ruby-1.8.7-p72でのエラー内容。
>irb
irb(main):001:0> require 'open-uri'
=> true
irb(main):002:0> $SAFE=1
=> 1
irb(main):003:0> open 'http://vvvvvv.sn25p.dip.jp/301.rb'
SecurityError: Insecure operation - []
from C:/Program Files (x86)/ruby/lib/ruby/1.8/open-uri.rb:577:in `[]'
from C:/Program Files (x86)/ruby/lib/ruby/1.8/open-uri.rb:577:in `find_proxy'
from C:/Program Files (x86)/ruby/lib/ruby/1.8/open-uri.rb:147:in `open_loop'
from C:/Program Files (x86)/ruby/lib/ruby/1.8/open-uri.rb:164:in `call'
from C:/Program Files (x86)/ruby/lib/ruby/1.8/open-uri.rb:164:in `open_loop'
from C:/Program Files (x86)/ruby/lib/ruby/1.8/open-uri.rb:162:in `catch'
from C:/Program Files (x86)/ruby/lib/ruby/1.8/open-uri.rb:162:in `open_loop'
from C:/Program Files (x86)/ruby/lib/ruby/1.8/open-uri.rb:132:in `open_uri'
from C:/Program Files (x86)/ruby/lib/ruby/1.8/open-uri.rb:518:in `open'
from C:/Program Files (x86)/ruby/lib/ruby/1.8/open-uri.rb:30:in `open'
from (irb):3
irb(main):004:0>
301.rbはこう。
#!ruby
require 'cgi'
cgi = CGI.new;
print cgi.header({
'Status' => '301 Moved Permanently',
'Location' => 'http://vvvvvv.sn25p.dip.jp/index.html'
});
ホストネームを指定しない場合は大丈夫だった。例えばこんな。
#!ruby
require 'cgi'
cgi = CGI.new;
print cgi.header({
'Status' => '301 Moved Permanently',
'Location' => '/index.html'
});
どこまで by designなんだろう。