- 携帯サイト(au)でのキャッシュについて
- 2010.02.23
auの場合、いちいちページ更新をしないと最新の状態が表示されない。
これは、一度見たページを携帯電話内に記憶(キャッシュ)しているためです。
こんな時HTMLのMETAタグでキャッシュ時間を制御できます。
書き方は以下の通り↓<meta http-equiv=”Cache-Control” content=”no-cache” />
これでキャッシュを無効にできます。
- SSIを拡張子「.html」で動かす
- 2010.02.20
SSI(Server Side Include)を使用すると、外部ファイルを読み込んで使用出来る為、共通で使用する部分を外部ファイル化し、各ページで読み込むようにすれば変更等が発生した場合その外部ファイルを修正すれば全てのページで変更が反映されメンテナンス制が非常に向上します。
但し、拡張子を「.shtml」で制作しなければならず、不便に思う時があります。そんな時、.htaccessで以下の記述を加えると.htmlでSSIが動くようになります。
AddType text/x-server-parsed-html .html
但し、このようにした場合、単純はHTMLファイルもSSIとして処理するのでサーバに負荷がかかるので利用時には注意が必要です。
ちなみに、PHPファイルを拡張子「.html」で動かすには、
AddType application/x-httpd-php .php .htAddType application/x-httpd-php .php .html
- CSSでのポジション指定時にIE6でズレてしまう
- 2010.02.19
position:relative;とposition:absoluteで位置指定した際、IE6でズレる 😯
しばらくハマってしまったが、親要素にwidth:100%を入れる事で無事解決!
htmlソース
<div class=”bt_keisan”>
<p>(ボタンの右に表示する文字)</p>
<input type=”hidden” name=”action” value=”calculate” />
<input type=”submit” value=”ボタン” />
</div>
CSSソース
.bt_keisan {
text-align:center;
margin:10px 0 0 ;
position:relative;
width:100%;
}
.bt_keisan p {
position:absolute;
left:50%;
top:50%;
margin:-8px 0 0 40px;
}
- Javascriptで動く計算機
- 2010.02.15
Javascriptで動く計算機を作成しました。
テンキー対応なので、シンプルだけど使いやすいかと思います・・・ 😛
- 携帯サイトでCSSを使用する
- 2010.02.11
携帯でCSSを使用する場合、ドコモだけは外部のCSSを読み込むことができない等の制約が多いため、全キャリア共通の携帯サイトを作成する際はドコモを基準に作る必要があります。
まず、外部参照は使用しません。また内部参照も制限が多いため、基本はインライン指定で行うことになります。以下、携帯でCSSを使う方法を記述します。
1.1行目にXML宣言
<?xml version=”1.0″ encoding=”Shift_JIS” ?>2.Content Type指定
<meta http-equiv=”Content-Type” content=”application/xhtml+xml; charset=Shift_JIS” />3.htaccssに追加
AddType application/xhtml+xml .html
これで拡張子「html」でCSSが有効になります4.PHPの場合ドコモだけ効かなかったので以下の1行を追加
header(“Content-type: application/xhtml+xml;charset=Shift_JIS”);5.インラインでstyleを指定する
- 携帯サイト用.htaccessの生成(IPアドレス制限)
- 2010.02.10
携帯専用サイトの場合、IPアドレスによるアクセス制限をし、PCからのアクセスを禁止することがあると思いますが、以下のサイトでは各キャリアのIPアドレスのみアクセス許可した.htaccessを生成してくれるのでとても便利です。
- auでhttpsからhttpページへの遷移時にエラーが出る件
- 2010.02.09
携帯サイトでhttps内のページからhttp内のページにリンクをした場合、ドコモとソフトバンクは正常に表示されるが、auだけが「リクエストされたページは表示できません」という画面が表示され、リンク先ページを表示できませんでした。
リンク先は定数で指定しており、以下のようになっておりました。<a href=”<?= HOMR_URL ?>”>トップページ</a>
これだとダメだったのでContent-Typeの指定等をいろいろ変えたりして試してみましたが結局だめだったので、リンク先の指定方法を定数ではなく、通常のURLで指定しなおしたら治りました。
<a href=”http://hoge.com/”>トップページ</a>
実は定数HOME_URLは以下のように設定してあり、環境変数を参照していました。
define(“HOME_URL”, “http://” . $_SERVER[“HTTP_HOST”]);define(“HOME_URL”, “http://hoge.com”);
このようにすると、リンク指定をHOME_URLでも大丈夫なようになったので、どうやらauでは期待した通りに環境変数が取得できていなかった模様 😯
- .htaccessのdeny from all で apacheのTestPageが表示されてしまう
- 2010.02.07
携帯サイト用にPCからのアクセスを拒否する.htaccessを作成する際、apacheのTestPageが表示されてしまい、対応に時間がかかったため、備忘録として記述します。
【.htaccessの内容】
order deny,allow
deny from all#アクセスを許可するIPアドレスを一行ずつ記入する
allow from 210.153.84.0/24
allow from 210.136.161.0/24#PC用のファイルを指定
ErrorDocument 403 /error_m/pc.html
#error_mディレクトリには.htaccessを設置しdeny from allを記述これで許可しているIPアドレス以外は/error_m/pc.htmlを表示するのですが、トップページを/(スラッシュ)で終了したURLにアクセスするとapacheのテストページが表示されていました。
http://www.hoge.com/ → NG(テストページ表示)
http://www.hoge.com/index.html → OK
http://www.hoge.com/index.htm → OK
http://www.hoge.com/index.php → OKいろいろ調べたところ、/etc/httpd/conf.d/welcome.confにある以下の内容が影響してるよう。
<LocationMatch “^/+$”>
Options -Indexes
ErrorDocument 403 /error/noindex.html
</LocationMatch>これを全部コメントアウトします。
いらないらしいけど、一応バックアップは取っておいたほうが安心 😉これで、httpd再起動後、正常に動作するようになりました。
service httpd restart
- 携帯サイトでのmailto使用について
- 2010.02.05
携帯サイトを作成していて mailto リンクで件名と本文を指定するのに下記のように指定します。
<a href=”mailto:メールアドレス?subject=件名&body=本文”>
このとき、件名と本文はURLエンコードする必要があるのだが、キャリアによって渡す文字コードに違いがあります。
DoCoMo、au は shift_JIS に変換してから URLエンコード、SoftBankはUTF-8にしてからURLエンコードしないと文字化けが起こります。
ですので、アクセスされた端末を判別し、それに合わせた文字コードに変換しURLエンコードするという手順になります。サンプルコードはこんな感じ
<a href=”mailto:?subject=<?php echo urlencode(mb_convert_encoding(‘題名’, ‘sjis’));?>&body=< ?php echo urlencode(mb_convert_encoding(‘本文’, ‘sjis’))?>”>友達に知らせる</a>