Joruri CMSのアンケートにiモードブラウザ1.0でアクセスの不幸

Joruri CMS*1は、Ruby on Railsで書かれたオープンソースCMSである。
このJoruri CMSの機能を使って作成したアンケートフォームに、iモードブラウザ1.0でアクセスすると不幸が起こる。

アンケートフォームへ入力することは可能であるが、いざ送信しようとすると

The change you wanted was rejected.

Maybe you tried to change something you didn't have access to.

というメッセージが表示される (´・ω・`)
このメッセージで検索してみるといろいろとヒットするがよくわからない。
google:"The change you wanted was rejected."

Joruri CMSのアンケートフォームに限って言えば、このメッセージの原因はユーザのブラウザがCookieを食わないことにある。
昨今、このようなブラウザはiモードブラウザ1.0ぐらいしかない。

NTT docomoiモードブラウザは、2.0からCookieに対応しているが*2、このバージョンが搭載された携帯電話は2009年5月以降に発売された機種である*3

とは言え、ユーザにとって見れば"The change you wanted was rejected."と言われても何のこっちゃ、である。
仕方が無いので、iモードブラウザ1.0からのアンケートフォームへのアクセスは全てsorryページにリダイレクトする。

/var/share/joruri/config/rewrite/base.conf に挿入

## imode browser 1.0
RewriteCond %{REQUEST_URI} ^/アンケートフォーム一覧のディレクトリ名/[0-9]+(/|$)
RewriteCond %{HTTP_USER_AGENT} DoCoMo/1.0 [OR]
RewriteCond %{HTTP_USER_AGENT} DoCoMo/2.0.*c100|c10
RewriteRule ^(.*)$ /sorry.html [L]

## Mobile, Smartphone
(略)

参考:nambei-x's blog: iモードブラウザ1.0からのアクセスを別のページにリダイレクトするための.htaccessの記述

別途、404.htmlをコピーしてsorry.htmlを作っておく
/var/share/joruri/public/sorry.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">

<head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
  <title>406 Not Acceptable</title>
</head>

<body>
    <p>ご利用の携帯電話では、ホームページからのアンケート入力ができません。</p>
    <p>お手数ですが、お電話にてお問い合わせください。</p>
</body>
</html>

iモードブラウザ1.0の挙動を確認するには、FireMobileSimulator(http://firemobilesimulator.org/)*4が便利。

*1:Joruri公式サイト

*2:作ろうiモード:iモードブラウザ2.0新機能一覧 | サービス・機能 | NTTドコモ

*3:作ろうiモード:iモードブラウザ | サービス・機能 | NTTドコモ

*4:主要3キャリア(DoCoMo/Au/SoftBank)の携帯端末ブラウザをシミュレートして、モバイルサイト開発を容易にするために作成されたFirefoxのアドオン