「【MovableType】iPhone用テンプレートの導入 | blog.delphinus.dev」では iPhone 用のページを作成し、切り替えて利用できるようにした。しかし、実際に使うときにはPCで見たときは PC 用ページ、iPhone で見たときには iPhone 用ページを表示して欲しい。そんなときは Apache の mod_rewrite
モジュールを利用する。ここのサイトが詳しかった。
杉浦とホームページ製作〜 URL を書き換えろ!「Rewrite 機能とは」
http://www.nurs.or.jp/~sug/homep/rewrite/rewrite1.htm
Apache の設定を確認
httpd.conf
に次の一行があるか確認する。そもそもこれがないとモジュール自体が機能しない。
LoadModule rewrite_module libexec/apache2/mod_rewrite.so
そして肝心の「iPhone 用のページに自動で転送する」ためには次の設定を使う。
RewriteEngine On RewriteCond %{HTTP_USER_AGENT} (iPhone|iPod) RewriteCond %{REQUEST_URI} !^/m/ RewriteRule ^(.*)\.html$ /m/$1.html [L]
User-Agent 文字列に「iPhone」「iPod」を含み(2 行目)、要求された URI が「/m/
」で始まらない場合は(3 行目)、HTML ファイルの要求を「/m/
」ディレクトリにある同名のファイルへ転送する(4 行目)。これをどこに書くかは二通りある。
httpd.conf
(またはそこにインクルードされるファイル)に書く- 転送したいファイルのあるディレクトリの
.htaccess
に書く