ケータイサイトを作る時にやっていること。


やってることを徒然なるまま。。。

(ノ・・)ン。。。。。。(((●コロコロッ


ウノウラボ Unoh Labs:
http://labs.unoh.net/2007/08/php_9.html
http://labs.unoh.net/2007/09/post_104.html

を読んで、
(・υ・)オレドウシテタッケ。
ってことで、


あと、
http://codezine.jp/a/article/aid/689.aspx
ここが( ̄-  ̄ ) ウーンだったので、



クローラについて書こうとしたらだらだら長くなったので、
まぁ笑っとけってことで。

[More:]


●システム基本
言語はなんでも良いと思います。
文字コードはシステム内部およびデータベースはUTF8です。
MySQLの変換抜け落ちが回避でき、
i絵文字もそのまま使える上、
海外製のフレームワークも使えるのでこの方法以外ありえません。
出力はPCとSoftbank3GCのみUTF8、残りはSJISです。
3キャリア対応でページを分けたりは絶対しません。

metaにはcontent-typeとcache-controlを必ず書きます。
content-typeを忘れると表示が狂うこと請け合いです。
cache-controlはauの頑固なキャッシュ機能を殺すためですね。
(はてぶのケータイサイトがauで異常に使いにくいのはこれが理由)

ロボットにindexされることは歓迎ですがcacheされることはお断りなので、
robotsはnoarchiveを付けます。

<meta http-equiv="Content-Type" content="text/html; charset=shift_jis">
<meta http-equiv="Cache-Control" content="no-cache" />
<meta name="robots" content="noarchive" />


HTTPヘッダにはDocomoの時はApplication/xhtml+xml、
それ以外はtext/htmlを打ち込みます。
Content-Lengthは必ず打てと書かれてますが無くても可です。




可能な限りクエリストリングは使わずPATH_INFOで処理します。
vodafoneC型問題が回避でき、
Softbank画像転送制限実装が簡単になり(URL最後に偽拡張子.jpzを付けるだけ)、
クローラ対策にもなります。
RewriteはPATHINFOと効果が同じで好みの問題です。


●キャリア判別
基本的にプログラム上でやってしまうことの方が多いです。
PEAR::Net_UserAgent_Mobileを使ってますね。



●キャリアアクセス制限
サイトによってやるかやらないかは都度考えます。
ただし、個体識別番号を使うサイト・ページでは必ず制限します。(クローラも入れません)
制限自体はApache上でやります。
httpd.conf(または設定ファイル)が操作できるときはそこに、
操作権限がない時は.htaccessに記述します。
顧客納品するような場合はIPリストを、
自社メディア OR 面倒なときはドメインで判別してます。

IP帯域はこのあたりから。
http://www.nttdocomo.co.jp/service/imode/make/content/ip/index.html
http://www.au.kddi.com/ezfactory/tec/spec/ezsava_ip.html
http://developers.softbankmobile.co.jp/dp/tech_svc/web/ip.php
取ってきますね。
帯域クローラは別途用意します。(APIでも作ろうかしら。)
フルブラウザやwillcom,イーモバイルは「ケータイ」ではないので、
許可リストに入れません。


●モバイルクローラ対策
アクセス制限の許可リストにクローラのIPかドメインを加え、
モバイルのサイトマップをrobot.txtに追加します。
各種検索エンジンのサイトマップツールは、
念のため利用しますがあまり当てになりません。
Mobile Link Discoveryというのは初めて知りました。
追加して様子を見ようかと。
クローラからのアクセスかどうかの判別は特別何もしてません。


このあたりは全部Apache上でもできます。
Apacheで分岐、変換といえばRewriteCond, RewriteRuleですが、
結構面倒くさいので使いません。
利用するのはmod_setenvifのsetenv系, BrowserMatch系ディレクティブです。

指定ドメイン(またはIPアドレス)がどのキャリアからのアクセスなのかを定義する時は
SetEnvIf Remote_Host docomo.ne.jp browser=docomo docomo
Allow From env=docomo

SetEnvIf Remote_Addr 210.136.161. browser=docomo docomo
Allow From env=docomo

サブネットが使えないようなのでRemote_Addrでは第4を外すかんじでしょうか。
(やったことないですが。)
レンタルサーバなどはApacheがリモートアドレスを取ってくれないの注意が必要です。

ちなみにSetEnvIfで環境変数を二つ定義するのは、
一つはApache判別用、もう一つはCGIでの利用のためです。
Allow Fromで環境変数を利用するにはenv=●●としか記述出来ないようなのでこうしてます。
browser=docomoと記述するとCGI(PHPなど)で
$_SERVER["browser"] = 'docomo';

と定義され、
その後の利用が簡単になります。

クローラはIP帯域で判別するのは種類が多くてやりません。
その代わりUserAgentでの判別をします。
Allow Fromにクローラのドメイン(公開されている時はIP)を入れておき、
# Google agents
BrowserMatchNoCase Googlebot Crawler=google
BrowserMatchNoCase Googlebot-Mobile Crawler=google
BrowserMatchNoCase Mediapartners-Google Crawler=google

# Yahoo agents
BrowserMatchNoCase "Yahoo\!\sSlurp" Crawler=yahoo
BrowserMatchNoCase Yahoo-MMCrawler Crawler=yahoo
BrowserMatchNoCase YahooSeeker Crawler=yahoo
BrowserMatchNoCase Y\!J-SRD Crawler=yahoo
BrowserMatchNoCase Y\!J-MBS Crawler=yahoo

# MSN agents
BrowserMatchNoCase ^msnbot Crawler=msn
BrowserMatchNoCase SandCrawler Crawler=msn


こんな感じでしょうか。
クローラはこちらを参考に。
http://shoes.tummy-magnet.com/log/eid249.html
百度がdeny入りなのは余談です。



●絵文字
絵文字の取得は過去記事をどおぞ。
docomo(ドコモ)やauの絵文字の抽出をPHPで最も簡単にする方法
iモードやezwebの絵文字を壊さずにSJISからEUC-JPに変換する方法
独自のマップデータを作り、
それにはめ込む形です。
変換は出力時にページ丸ごと一括でやります。
なので、au絵文字は画像ではなくSJISコードを使います。
PCの時はその場その場で使うか撤去するかを考えます。




基本構成はこんなとこでしょうかねぇ。
それにしても面倒ですね。

Trackback address for this post:

http://hain.jp/htsrv/trackback.php/181

Comments, Trackbacks:

Comment from: tes [Visitor]
> 3キャリア対応でページを分けたりは絶対しません。

gif/jpg の違いや、機種による画面幅など、どう対応しているのか興味あります。
PermalinkPermalink 2007/10/02 @ 09:22
Comment from: dozo [Member]
画像幅は、
QVGA対応端末の一覧(あるいはUAのパターン)を用意しておき、
非対応では横130px, 対応では240pxで表示してます。
ですが、最近では前提条件として、
提案の段階で対応端末を[パケット定額制対応端末]とするので基本的に何もしません。
その辺はサイトによりけりかと思います。
コミュニティはパケ定対応のみ、
ECではQVGA振り分けを付けるといった具合でしょうか。


gif/jpgの違いとはよくわかりませんが、
jpgとgif/pngの使い分けはやります。
ロゴや素材はgif/png二つずつ用意して、
docomoの時はgif, ezweb/softbankの時はpngで表示します。
写真はフィルタを通してjpg変換して表示してます。
PermalinkPermalink 2007/10/11 @ 18:11

Leave a comment:

Your email address will not be displayed on this site.
Your URL will be displayed.

Allowed XHTML tags: <p, ul, ol, li, dl, dt, dd, address, blockquote, ins, del, span, bdo, br, em, strong, dfn, code, samp, kdb, var, cite, abbr, acronym, q, sub, sup, tt, i, b, big, small>
(Line breaks become <br />)
(Set cookies for name, email and url)
(Allow users to contact you through a message form (your email will NOT be displayed.))
This is a captcha-picture. It is used to prevent mass-access by robots.

Please enter the characters from the image above. (case insensitive)

powered by b2evolution

shinobi

Neighbors
Relative
Favorites
PR

極論istの技術屋を始めて早幾年。 流れの速い業界の波にもまれながらも精一杯生きている様をとくとごらんあれ。

Archives
スポンサー

Latest bookmark
Search

Categories

Who's Online?
Misc
Syndicate this blog XML

Valid XHTML 1.0! Valid CSS! Valid RSS 2.0! Valid Atom 1.0!