ApacheでPC、携帯分岐
★★今回やりたいこと★★
http://www.●●.com/index.html
へアクセスしてきたとき、
PCならば、 => http://www.●●.com/index.html
携帯ならば、 => http://www.●●.com/i/index.html
と言うように分岐したいとき、
普段はPHPなどを利用していたが、携帯でhttp://www.●●.com/index.htmlへ直接アクセスしてきたとき、
困るのでWebサーバー(Apache)で分岐する。
やりたいことは、
1.http://www.●●.com/index.html に携帯でアクセスしてきたときに、http://www.●●.com/i/index.html に飛ばしたい。
2.http://www.●●.com/i/index.html にPCでアクセスしてきたときに、http://www.●●.com/index.html に飛ばしたい。
の2点である。
★★方法★★
※mod_rewriteがインスコされている場合です
1の対処
RewriteEngine On RewriteCond %{HTTP_USER_AGENT} DoCoMo RewriteRule ^$ /i/ [R] RewriteCond %{HTTP_USER_AGENT} J-PHONE RewriteRule ^$ /i/ [R] RewriteCond %{HTTP_USER_AGENT} Vodafone RewriteRule ^$ /i/ [R] RewriteCond %{HTTP_USER_AGENT} SoftBank RewriteRule ^$ /i/ [R] RewriteCond %{HTTP_USER_AGENT} ASTEL RewriteRule ^$ /i/ [R] RewriteCond %{HTTP_USER_AGENT} UP.Browser RewriteRule ^$ /i/ [R]
が書いてある .htaccess を
http://www.●●.com/index.html のファイルが置いてある階層に設置。
2対処
RewriteEngine On RewriteCond %{HTTP_USER_AGENT} !(DoCoMo|J-PHONE|Vodafone|ASTEL|UP.Browser|SoftBank) RewriteRule ^$ / [R]
が書いてある .htaccess を
http://www.●●.com/i/index.html のファイルが置いてある階層に設置。
これでよい。