携帯サイトをこの前作ったんだけど、色々わかった事があるので、メモ書き。
いきなりだけど、下のタグの記述は携帯ではNGなのである。
何が悪いかわかるかな?
<a href="http://blog.grayash.com/shoppinglist" accesskey="1">テスト</a>
何が悪いかっつーと、リンク先のURLで最後 /(スラッシュ) が無い!
通常は、こうなるべきなんだよね。
<a href="http://blog.grayash.com/shoppinglist/" accesskey="1">テスト</a>
最後のスラッシュが無いとどうなるかというと、Docomoの機種(基本的にほとんど)によって「サイトが移動しました。」というエラーメッセージを返す。(一応アクセスはできる)
何故このエラーメッセージが表示されるかというと、最後のスラッシュが無いことでサーバーがhttp://blog.grayash.com/shoppinglistというファイルを一度探して、無い場合http://blog.grayash.com/shoppinglist/というフォルダを探すから。
PCでアクセスした場合は、エラーメッセージが表示されないからついつい忘れがちになってしまうので注意。
まぁ、要約すると「フォルダ指定の場合は最後のスラッシュを忘れるな!」ってこと。
ただし、フォルダじゃなくてURLを指定する場合は、
<a href="http://blog.grayash.com" accesskey="1">テスト</a>
<a href="http://blog.grayash.com/" accesskey="1">テスト</a>
上記の2つはどちらも問題無い。理由は上記と同じで、フォルダを指定しているわけじゃないから。
これは、HTMLファイルを作る場合もそうなんだけど、特にQRコードを作る場合に注意した方がいい。
QRコードに埋め込むURLがフォルダ指定だった場合、最後のスラッシュが無いと同じコトになるからね。チラシにQRコードを埋め込む事がこれから多くなりそうだから必ずチェックすべし。チラシ製作がDTP専門の会社の場合、往々にして最後のスラッシュが無い場合があるよ。
ついでにもう1個。
<meta http-equiv="Refresh" content="0;URL=http://blog.grayash.com/">
アクセス後にページを強制的に飛ばす上記のMetaタグだけど、iモードでは対応していない。
Content-Location: http://blog.grayash.com/\n\n
なので、CGIのLocationを使う。
例えば、URLを同じでアクセスされるとキャリア別に用意しておいた違うHTML(HDML)ファイルに飛ばしてやりたい!なんて場合に活用できるわけ。
面倒なのでソースコードは書かないけど、HTTP_USER_AGENTを取得してDocomo、AU、Vodafone、TUKAの文字列を検索にかけてLocationで飛ばしてやるっていう感じ。
モバイルサイトを作るってのは需要があるから、サンプルプログラムを組んでおくと使いまわしが出来て良いよ。
- Newer: U-23 日本 vs ベネズエラ
- Older: 続 子供の名前