ApacheのQUERY_STRINGではまる
久々のURLネタだぜ…もう書かなくていいって思ってたのに;
今回の問題はWEBサーバごとのQUERY_STRING環境変数の挙動の違いです
QUERY_STRINGっていうのはURLの?以降の内容を文字列として保存している環境変数で、サーバごとに仕様が異なるのが困り物
Lihttpdではそもそも使えなかったりします
WEBrickでは?以降がなければ中身がnil(未定義?)になります
Apache2では?以降がなくても変数としては存在します
なので、QueryStringのないURLでアクセスすると
query_str = (request.env['QUERY_STRING'])?('QueryString = ' + request.env['QUERY_STRING']):('QueryString is not exist')
# Apache -> query_str = 'QueryString = '
# WEBrick -> query_str = 'QueryString is not exist'
こんな感じの動作になる
今回は中身まで(空かどうか)確認して事なきを得ました