スマートフォンリダイレクト
このサンプルはPC←→SP相互リダイレクトです。
jquery.cookie.jsを使用します。
.htaccess
RewriteEngine on
# クッキー変数「viewmode」が「sp」の場合、SP版ページにリダイレクト
RewriteCond %{REQUEST_URI} !^/s/.*$ [NC]
RewriteCond %{REQUEST_FILENAME} !^(.*)\.(gif|png|jpg|jpeg|js|css|pdf)$ [NC]
RewriteCond %{HTTP_COOKIE} viewmode=sp [NC]
RewriteRule ^(.*)$ /s/$1 [NE,R,L]
# クッキー変数「viewmode」が「pc」の場合、PC版ページにリダイレクト
RewriteCond %{REQUEST_FILENAME} !^(.*)\.(gif|png|jpg|jpeg|js|css|pdf)$ [NC]
RewriteCond %{HTTP_COOKIE} viewmode=pc [NC]
RewriteRule ^s/(.*)$ /$1 [NE,R,L]
# iPhone,Androidなどの端末からのアクセスの場合、SP版ページにリダイレクト
RewriteCond %{REQUEST_URI} !^/s/.*$ [NC]
RewriteCond %{REQUEST_FILENAME} !^(.*)\.(gif|png|jpg|jpeg|js|css|pdf)$ [NC]
RewriteCond %{HTTP_COOKIE} !viewmode=pc [NC]
RewriteCond %{HTTP_USER_AGENT} (iPhone|iPod|BlackBerry|Android.*Mobile|Windows\ Phone|Windows\ CE) [NC]
RewriteRule ^(.*)$ /s/$1 [NE,R,L]
# PC版ページにリダイレクト
RewriteCond %{REQUEST_FILENAME} !^(.*)\.(gif|png|jpg|jpeg|js|css|pdf)$ [NC]
RewriteCond %{HTTP_COOKIE} !viewmode=sp [NC]
RewriteCond %{HTTP_USER_AGENT} !(iPhone|iPod|BlackBerry|Android.*Mobile|Windows\ Phone|Windows\ CE) [NC]
RewriteRule ^s/(.*)$ /$1 [NE,R,L]
html
headerでJSファイル読み込み
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="jquery.cookie.js"></script>
<script type="text/javascript" src="viewmode.js"></script>
PC版HTML
<div id="switch-button-area"></div>
SP版HTML
<div id="switch-button-area">
<a href="#" id="switch-button-pc">PC版を表示</a>
</div>
JS(viewmode.js)
jQuery(function($){
if ($.cookie('viewmode') === 'pc') {
$('#switch-button-area').append('<div id="switch-button-sp"><a href="#">SP版を表示</a></div>');
}
var url = location.href;
$('#switch-button-pc').on('click', function() {
$.cookie('viewmode', 'pc', { expires: 7, path: '/' });
location.href = url;
return false;
});
$('#switch-button-sp').on('click', function() {
$.cookie('viewmode', 'sp', { expires: 7, path: '/' });
location.href = url;
return false;
});
});