.htaccessでRewriteEngineを使ってPCとスマホを振り分ける記述
同一のURLで下層のフォルダ(スマホサイト)にリダイレクトさせる方法と
外部のスマホサイトにリダイレクトさせる方法は基本的に同じ
同一URLパターン(スマホはspというフォルダ)
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (iPhone|iPod|iPad|Android|BlackBerry)
RewriteRule ^$ /sp/ [R]
外部URLパターン(フルパスで記述)
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (iPhone|iPod|iPad|Android|BlackBerry)
RewriteRule ^$ http://kdcs-web.com/sp/ [R]
wordpressの.htaccessに記述する場合、「# BEGIN WordPress~# END WordPress」の外に記述する
※内側に記述すると勝手に書き換えられることがあるため
http://kdcs.sub.jpのspというフォルダにスマートフォンサイトを用意した場合の記述
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (iPhone|iPod|iPad|Android|BlackBerry)
RewriteRule ^$ http://kdcs.sub.jp/sp/ [L]
</IfModule>
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
phpでは、
<?php
$ua=$_SERVER['HTTP_USER_AGENT'];
if((strpos($ua,'iPhone')!==false)||(strpos($ua,'iPod')!==false)||(strpos($ua,'Android')!==false)||(strpos($ua,'BlackBerry')!==false)){
header("Location:http://kdcs.sub.jp/smart/");
exit();
}
?>
javascriptでは、
<script type="text/javascript">
if ((navigator.userAgent.indexOf('iPhone') > 0 && navigator.userAgent.indexOf('iPad') == -1) || navigator.userAgent.indexOf('iPod') > 0 || navigator.userAgent.indexOf('Android') > 0) {
location.href = '/sp/';
}
</script>