w3mで406 Not Acceptableになるサイトが見られるようになった

Refactormycodeが見られないよー>< - http://rubikitch.com/に移転しました

結論から言うと、「受けつけるメディアタイプ(Accept:)」(~/.w3m/configではaccept_media)が
text/*, image/*, application/*, audio/*, video/*
と設定されていたから。いじっていないがいつのまにかそうなっていた。

そこを空欄にしたら
text/html, text/*;q=0.5, image/*, application/*, audio/*, video/*
になった。そうすると見られるようになった。謎だぁ…

ちなみに、原因究明に使ったスクリプトはこんなの。プロキシサーバーでヘッダを確認し、open-uriで確認し、ヘッダを設定する。このようにして再現できた。

require 'open-uri'
header = {
  'accept-language' => 'ja;q=1.0, en;q=0.5',
  'accept' => 'text/*, image/*, application/*, audio/*, video/*',
  'user-agent' => 'open-uri/ruby',
  'accept-encoding' => 'none',
  'host' => 'refactormycode.com',
}
open("http://refactormycode.com/codes/246-action-mailer", header) do |f|
  html = f.read
  html.length                     # => 
end
# ~> /pkgs/ruby19/lib/ruby/1.9.0/open-uri.rb:340:in `open_http': 406 Not Acceptable (OpenURI::HTTPError)
# ~> 	from /pkgs/ruby19/lib/ruby/1.9.0/open-uri.rb:761:in `buffer_open'
# ~> 	from /pkgs/ruby19/lib/ruby/1.9.0/open-uri.rb:197:in `block in open_loop'
# ~> 	from /pkgs/ruby19/lib/ruby/1.9.0/open-uri.rb:195:in `catch'
# ~> 	from /pkgs/ruby19/lib/ruby/1.9.0/open-uri.rb:195:in `open_loop'
# ~> 	from /pkgs/ruby19/lib/ruby/1.9.0/open-uri.rb:141:in `open_uri'
# ~> 	from /pkgs/ruby19/lib/ruby/1.9.0/open-uri.rb:663:in `open'
# ~> 	from /pkgs/ruby19/lib/ruby/1.9.0/open-uri.rb:33:in `open'
# ~> 	from -:11:in `<main>'

で、acceptをコメントアウトするとうまくいった。

require 'open-uri'
header = {
  'accept-language' => 'ja;q=1.0, en;q=0.5',
#  'accept' => 'text/*, image/*, application/*, audio/*, video/*',
  'user-agent' => 'open-uri/ruby',
  'accept-encoding' => 'none',
  'host' => 'refactormycode.com',
}
open("http://refactormycode.com/codes/246-action-mailer", header) do |f|
  html = f.read
  html.length                     # => 24635
end

acceptを*/*にしても見られた。この設定が妥当なのかはまだよくわからない。