本来、しらぎくモバイルシステムはiモード向けのコンテンツを他キャリア向けに変換するシステムとして開発されたものでしたが、現在ではiモードも端末が多様化しつつある事もあり、iモードもしらぎくモバイルシステムで処理するようになっております。
しかしながら、iモード端末にはしらぎくモバイルシステムを通さずに直接配信するようにすれば、サーヴァの負荷を軽減させる事が出来ます。
ここでは、その方法について簡単に解説します。
ここでは、本来の目的に合わせてiモードに対して無変換とする方法を解説しますが、WAP 2.0(EZウェブ現行機)に対しても、或いはWAP 2.0に対してのみ同様の措置を執る事も可能です。適宜読替えて下さい。
ここで紹介している方法は、一部未検証のものがあります。検証を行い次第、より正しい方法に改訂しますが、実践される際にはあくまでも自己責任で実践下さるようお願いします。
トップページをCGIにして、端末がiモードの場合は生のHTML文書へリダイレクトするようにします。
その他の端末に関しては、しらぎくモバイルシステムのアドレスに移動させます。
但し、この方法には、
iモード以外の端末はトップページ以外はしらぎくモバイルシステムのアドレスなので、このアドレスをiモードユーザに知らせても問題ありませんが、逆だと問題が生じ得ます。また、折角iモードに対して無変換としても、結局変換済みのアドレスが普及してしまうと意味が無くなってしまいます。
と言う問題点があります。
現在、iモードについてはいくつかのタイプがあります。
これらに対して適切な画像に振り分けるためにしらぎくモバイルシステムでは<img>要素のsrc属性値のURLを画像処理CGIのアドレスに書き換える機能がありますが、無変換の場合は当然この書換えが実行されません。
一番単純な方法は<img>要素のsrc属性のアドレスを「img.cgi」(GIF画像の場合)か「jpg.cgi」(JPEG画像の場合)に予め書き換えておく事ですが、より良い対策として、mod_rewriteが使えるのであれば、以下の方法をお奨めします。
非QVGA向けGIF画像収納ディレクトリに、以下の記述のある「.htaccess」を設置します。
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} ^DoCoMo\/2\.\d+\s[A-Z]+[789] [OR]
RewriteCond %{HTTP_USER_AGENT} ^DoCoMo\/1\.\d+\/[A-Z]+50[5-9]i [OR]
RewriteCond %{HTTP_USER_AGENT} ^DoCoMo\/1\.0\/SH252i [OR]
RewriteCond %{HTTP_USER_AGENT} ^DoCoMo\/1\.0\/D253iW [OR]
RewriteCond %{HTTP_USER_AGENT} ^DoCoMo\/2\.0\sMST_v
RewriteRule (.*)
(QVGA向けGIF画像設置ディレクトリ)/$1 [L]
RewriteCond %{HTTP_USER_AGENT} ^DoCoMo\/1\.0\/[A-Z]+501i [OR]
RewriteCond %{HTTP_USER_AGENT} ^DoCoMo\/1\.0\/NM502i [OR]
RewriteCond %{HTTP_USER_AGENT} ^DoCoMo\/1\.0\/ER209i [OR]
RewriteCond %{HTTP_USER_AGENT} !^DoCoMo\/
RewriteRule (.*)
(「img.cgi」設置アドレス)?a=$1 [L]
これにより、QVGA端末にはQVGA向け解像度のGIF画像のURLに読み替え、白黒専用端末及びドコモ以外の端末には減色処理を行う「img.cgi」の処理アドレスに読み替えます。
JPEG画像も用いている場合、非QVGA向けJPEG画像収納ディレクトリに、以下の記述のある「.htaccess」を設置します。
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} ^DoCoMo\/2\.\d+\s[A-Z]+[789] [OR]
RewriteCond %{HTTP_USER_AGENT} ^DoCoMo\/1\.\d+\/[A-Z]+50[5-9]i [OR]
RewriteCond %{HTTP_USER_AGENT} ^DoCoMo\/1\.0\/SH252i [OR]
RewriteCond %{HTTP_USER_AGENT} ^DoCoMo\/1\.0\/D253iW [OR]
RewriteCond %{HTTP_USER_AGENT} ^DoCoMo\/2\.0\sMST_v
RewriteRule (.*)
(QVGA向けJPEG画像設置ディレクトリ)/$1 [L]
RewriteCond %{HTTP_USER_AGENT} !\/T
RewriteCond %{HTTP_USER_AGENT} !^DoCoMo\/1\.0\/P503iS
RewriteCond %{HTTP_USER_AGENT} !^DoCoMo\/1\.0\/N503i
RewriteCond %{HTTP_USER_AGENT} !^DoCoMo\/1\.0\/[NRS]O?211i
RewriteCond %{HTTP_USER_AGENT} !^DoCoMo\/1\.0\/R692i
RewriteCond %{HTTP_USER_AGENT} !^DoCoMo\/1\.0\/D504i
RewriteCond %{HTTP_USER_AGENT} !^DoCoMo\/1\.0\/[DS]H?251i
RewriteRule (.*?)\.jpg
(非QVGA向けGIF画像設置ディレクトリ)/$1.gif [L]
RewriteCond %{HTTP_USER_AGENT} ^DoCoMo\/1\.0\/[A-Z]+501i [OR]
RewriteCond %{HTTP_USER_AGENT} ^DoCoMo\/1\.0\/NM502i [OR]
RewriteCond %{HTTP_USER_AGENT} ^DoCoMo\/1\.0\/ER209i [OR]
RewriteCond %{HTTP_USER_AGENT} !^DoCoMo\/
RewriteRule (.*)
(「jpg.cgi」設置アドレス)?a=$1 [L]
これにより、QVGA端末にはQVGA向け解像度のJPEG画像のURLに読み替え、非QVGA端末でJPEG画像に対応していないものには拡張子とディレクトリを書き換えたURLに読み替え、白黒専用端末及びドコモ以外の端末には減色処理を行う「img.cgi」の処理アドレスに読み替えます。
絵文字の場合、旧型機と現行機でサポートの範囲が異なります。
しらぎくモバイルシステムの『絵文字処理プラグイン』はこの機能の違いを吸収出来ますが、しらぎくモバイルシステムを通さない場合は旧型機で文字化けを起こす可能性があります。
このため、以下の措置を執ると良いでしょう。
mod_rewriteが使えるのであれば、最も単純な方法の画像に関してで用いた「.htaccess」の機能をテキスト処理にも用いる事が出来ます。
こうする事で、iモード端末には無変換のコンテンツを、その他のキャリアには変換済みのコンテンツを全く同じURLで配信出来るようになります。
具体的には、HTML文書収納ディレクトリに以下の記述を持つ「.htaccess」を設置します。
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} !^DoCoMo\/
RewriteRule (.*)
(「K.cgi」設置アドレス)?a=$1 [L]
後は画像に関しては画像に関してで示した方法を用いる事になります。
尚、この方法の場合しらぎくモバイルシステムのURLではなく生HTML文書のURLで自動的にiモード以外にはコンテンツ変換機能が発動するようになります。
WAP 2.0向けコンテンツをオリジナルとする場合、.htaccessの記述を変更する事になります。
また、画像にGIF画像やJPEG画像だけでなく、PNG画像を用いる事も可能になりますので、PNG画像を用いている場合はPNG画像収納ディレクトリにも振り分けを行う「.htaccess」を設置する必要があります。