プログラミング言語や環境設定を中心としたパソコン関連の技術メモです。
主にシステム開発中に調べたことをメモしています。TIPS的な位置付けで、気が向いたときにちまちま更新していきます。
.htaccessを使って、特定のユーザーエージェントからのアクセスをリダイレクトする
結論から書くと、例えば

RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} iPhone
RewriteRule .* http://example.com/ [R=302,L]

のように

RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} 【対象のユーザーエージェント】
RewriteRule 【対象のディレクトリ】 【転送先のURL】 [R=302,L]

の形式で書けばOKです。

それでは詳細を書いていきます。

私の運営しているWebサービスに、いまだにIE6からのアクセスがありましてね。
「さすがにIE6は切っていいだろう」と判断したので、
IE6でアクセスしたら「お使いのブラウザは古いからうんぬんかんぬん」みたいな
警告ページに飛ばすことにしたのです。

ほんで、具体的にはどーやるの(--?

ふむふむ(--)

RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} "MSIE 6"
RewriteRule .* http://www.example.com/ [R=302,L]

でOKでした。

%{HTTP_USER_AGENT} "MSIE 6"

の「"MSIE 6"」が対象のユーザーエージェント指定です。
全体で、ユーザーエージェントに「MSIE 6」という文字が「含まれる」の指定になります。

なお、半角スペースの扱いですが、今回はダブルクォートで囲みました。
私の環境で試してみたところ「\(バックスラッシュ)」でエスケープしても大丈夫のようです。
試しに

%{HTTP_USER_AGENT} MSIE\ 6

と指定して、半角スペースをエスケープしたところ、普通に動きました。

あと、面倒くさいので実際に確認はしていませんが、正規表現指定のはずです。
例えば

%{HTTP_USER_AGENT} ^Mozilla

と指定すれば、ユーザーエージェントが「Mozilla」という文字で「始まる」の指定になります。

次に

RewriteRule .* http://www.example.com/ [R=302,L]

の部分ですが「.*」は対象のディレクトリです。
「.(任意の1文字)」「*(任意の0文字以上)」なので
「何か書いてあれば」つまり「全部」な指定になっています。
特定のディレクトリだけ拒否りたい場合は、ここでディレクトリを指定してください。

ただし、ここも正規表現指定です。

例えば

/test

と指定してしまうと、

/test/
/test/index.html
/test.html
/test2.html
/hoge/test2/index.html

などが対象になってしまいます。
「^(~で始まる)」「$(~で終わる)」を忘れないでくださいね。

「http://www.example.com/」の部分はリダイレクト先のURLだから良いとして、
あと気になるとしたら

[R=302,L]

の部分ですかね。

「R=302」は「302リダイレクトですよー」の意味です。
301リダイレクトにしたい場合は「R=301」と書きます。

301リダイレクトと302リダイレクトの違いについては
301リダイレクトと302リダイレクトの違い。」の記事をご覧ください。

[L]は「ここが最後の行ですよ~」の目印です。
この行以降に書いたRewriteRuleは無視されます。

そんなところです。

最後にもう一度まとめておきますね。

.htaccessを使って、特定ユーザーエージェントからのアクセスをリダイレクトさせた場合は

RewriteEngine on
(リライトすんぞ!の宣言)
RewriteCond %{HTTP_USER_AGENT} "MSIE 6"
(ユーザーエージェントに「MSIE 6」が含まれていたらリライトすんぞ!)
RewriteRule .* http://www.example.com/ [R=302,L]
(全部「http://www.example.com/」に302リダイレクトすんぞ!)

と書けばOKです。

そんな感じ\(--)/
スポンサーリンク
 
このエントリーをはてなブックマークに追加 

category:● 環境設定関連  thema:パソコンな日々 - genre:コンピュータ  Posted by ササキマコト 

  関連記事