特定のキャリアに無変換で配信する方法

本来、しらぎくモバイルシステムはiモード向けのコンテンツを他キャリア向けに変換するシステムとして開発されたものでしたが、現在ではiモードも端末が多様化しつつある事もあり、iモードもしらぎくモバイルシステムで処理するようになっております。

しかしながら、iモード端末にはしらぎくモバイルシステムを通さずに直接配信するようにすれば、サーヴァの負荷を軽減させる事が出来ます。

ここでは、その方法について簡単に解説します。

おことわり。

最も単純な方法。

CGIなどで端末を振り分ける。

トップページをCGIにして、端末がiモードの場合は生のHTML文書へリダイレクトするようにします。

その他の端末に関しては、しらぎくモバイルシステムのアドレスに移動させます。

但し、この方法には、

iモードとiモード以外の端末とでURLが異なってしまう

iモード以外の端末はトップページ以外はしらぎくモバイルシステムのアドレスなので、このアドレスをiモードユーザに知らせても問題ありませんが、逆だと問題が生じ得ます。また、折角iモードに対して無変換としても、結局変換済みのアドレスが普及してしまうと意味が無くなってしまいます。

と言う問題点があります。

画像に関して。

現在、iモードについてはいくつかのタイプがあります。

これらに対して適切な画像に振り分けるためにしらぎくモバイルシステムでは<img>要素のsrc属性値のURLを画像処理CGIのアドレスに書き換える機能がありますが、無変換の場合は当然この書換えが実行されません。

一番単純な方法は<img>要素のsrc属性のアドレスを「img.cgi」(GIF画像の場合)か「jpg.cgi」(JPEG画像の場合)に予め書き換えておく事ですが、より良い対策として、mod_rewriteが使えるのであれば、以下の方法をお奨めします。

  1. 非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」の処理アドレスに読み替えます。

  2. 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の機能を活用する(対応サーヴァのみ)。

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に対しての方法。

WAP 2.0向けコンテンツをオリジナルとする場合、.htaccessの記述を変更する事になります。

また、画像にGIF画像やJPEG画像だけでなく、PNG画像を用いる事も可能になりますので、PNG画像を用いている場合はPNG画像収納ディレクトリにも振り分けを行う「.htaccess」を設置する必要があります。


ページ外へのご案内。