i-mode で見れるようにしました (ほかのケータイは持っていないのでテストできません).
うちは文字コードがUTF-8なんですが,i-mode だと完璧に文字化けするので.
つーか,ほとんど誰も見に来ないのに,さらにアクセスの少なそうなケータイ対応版を作ってどうするって言う話もありますが.
i-mode を持っていて,パケット代の惜しくない人は,https://alm-ore.com/alm-ore/ にアクセスしてみて,PCとの挙動の違いを確かめてみてください.
以下,やったことリスト
1. mt4i.cgi のインストール
ここ読めば,僕がくどくど説明するよりも,100倍良くわかります.言われたとおりやれば,ハマらないし.
2. URLの通知に不安を抱く
mt4i.cgi は,そのままだと i-mode ユーザーは というファイルにアクセスしなければなりません.
このURLをアナウンスするのがスジってもんでしょうが,うちのPC用のURLだってあまり認知されていないのに,別途 i-mode 用のURLを認知させるのは,うちのネコにトイレの場所を教える以上に困難なわけで...
そこで考えた.通常のMainページで,i-mode からのアクセスを検知して,振り分ければよいのではないかと.
3. perl スクリプト
以下のような perl スクリプトを作って,mobilecheck.cgi という名前をつけてみたり,mt.cgi とかがあるディレクトリに置いてみたり,chmod 755 してみたりしました.
— From Here —
#!/usr/local/bin/perl
$UserAgent = $ENV{‘HTTP_USER_AGENT’};
if ($UserAgent =~ /^DoCoMo/) {
print “<center>”;
print “<a href=\”https://alm-ore.com/alm-ore/mt4i.cgi\”>alm-ore for mobile</a>”;
print “</center><hr>”;
print “<p>If you access via mobile phone, <a href=\”https://alm-ore.com/alm-ore/mt4i.cgi\”>CLICK HERE</a> to go to alm-ore.</p>”;
print “<p>Although Your terminal may display strange characters bellow, don’t worry.</p>”;
}
— Until Here—
スクリプトの内容は,聡明な皆様には改めて説明することもないかと思いますが,
- ブラウザーの HTTP_USER_AGENT を調べる
- User Agent の文字列が “Docomo” で始まっていれば,アナウンスを出す
- アナウンスの内容は「モバイル用のページへ行け」,「下の方は文字がバケバケだけど,心配するな」.(どうしても,UTF-8 の内容も一緒に文字化けしたまま出てしまうので,安心させる目的と,一杯文字を書き込んでおけば,文字化けした内容そのものが画面から追い出されるだろうという期待)
が主なお仕事です.
4. Main Index のテンプレートに細工
<body> のすぐしたあたりに,SSIで
<!–#exec cmd=”./mobilecheck.cgi” –>
を埋め込んでみる.
もっとオサレげで,スマートなやり方があるのかもしれないけど,まぁこんなところで.