|
htaccess解説/リダイレクト(スマートフォン・携帯)
htaccessのリダイレクト機能を使用すれば、スマートフォンや携帯電話からのアクセスを専用ページにリダイレクト(転送)することが出来ます。
スマートフォンはパソコンより画面が小さく、画面構成を切り替えることが多くあります。サーバのプログラムで画面を入れ替える他にhtaccessで専用画面に自動移動させることもできます。
スマートフォンのリダイレクト(転送)
スマートフォンのリダイレクトがサンプルとなっていますが、携帯ブラウザでも同様に判断することが出来ます。
「.htaccess」ファイル(サンプル)
RewriteEngine On RewriteBase /
RewriteCond %{REQUEST_URI} !^mobile/.*$
RewriteCond %{HTTP_USER_AGENT} iPhone [NC,OR]
RewriteCond %{HTTP_USER_AGENT} iPod [NC,OR]
RewriteCond %{HTTP_USER_AGENT} BlackBerry [NC,OR]
RewriteCond %{HTTP_USER_AGENT} Android.*Mobile [NC,OR]
RewriteCond %{HTTP_USER_AGENT} Windows\ Phone [NC,OR]
RewriteCond %{HTTP_USER_AGENT} Windows\ CE [NC]
RewriteCond %{HTTP_USER_AGENT} !iPad [NC]
RewriteRule ^(.*)$ mobile/$1 [R,L]
| 動作 |
スマートフォンで
「http://www.example.jp/info/map.html」にアクセスがあった場合、
「http://www.example.jp/mobile/info/map.html」に
リダイレクト(転送)されます。 |
 |
| 構文 |
意味 |
| RewriteEngine |
「On」は、Rewrite機能を使用することを宣言しています
※利用しているサーバの設定によっては「RewriteEngine」が使用できないことがあります |
| RewriteBase |
基準となるパスを指定します 「/」を指定した場合は、ルートを表します |
| RewriteCond |
判定条件を以下の形式で記載します
RewriteCond テスト対象 パターン フラグ
サンプルの記載は以下の意味となる
RewriteCond %{REQUEST_URI} !^mobile/.*$ → ”リクエスト(アクセス)があったURLが「mobile」以外 かつ”
RewriteCond %{HTTP_USER_AGENT} iPhone [NC,OR] → ”ユーザーエージェントに「iPhone」の文字(NC:大文字、小文字の区別しない)を含む または”
RewriteCond %{HTTP_USER_AGENT} !iPad [NC] → ”ユーザーエージェントに「iPad」の文字(NC:大文字、小文字の区別しない)を含まない かつ”
使用しているフラグの意味は以下となる
- [NC]
大文字小文字の識別なし
- [OR]
続く条件を「または」で判定。指定が無い場合は「かつ(AND)」となる
※色々な指定が出来るので、詳細はマニュアルを確認ください。 http://httpd.apache.org/docs/2.2/ja/mod/mod_rewrite.html |
RewriteRule |
条件に一致する場合の動作を記載します
RewriteRule ^(.*)$ mobile/$1 [R=301,L]
サンプルは以下の意味となります ・「mobile」ディレクトリにリダイレクトする ・・・ 「R」 ・この行が最終行 ・・・ 「L」
※色々な指定が出来るので、詳細はマニュアルを確認ください。 http://httpd.apache.org/docs/2.2/ja/mod/mod_rewrite.html
|
Rewriteは多くの機能があります。 上記では、単純なリダイレクトとなりますが、転送先URLの変更やステータスコードの指定など詳細な設定が可能です。 詳細は、下記マニュアルでご確認ください。 http://httpd.apache.org/docs/2.2/ja/mod/mod_rewrite.html |
その他
- 有効の範囲
「.htaccess」ファイルが置かれたディレクトリとその配下の全てが、リダイレクトの範囲となります。「htaccess留意事項」も合わせてご確認ください。
- ユーザーエージェントを利用した判断の正当性
単純な文字列有無の判断のため、正しいとは限りません。 また、ユーザーエージェントは設定により偽装も可能であるため、正しい情報とは限りません。 このため、100%の判断はできないことを理解の上ご利用ください。 (当社では、当ページの基準で判断しています)
|