[.htaccess] PC用とスマホ用で振り分けをする

Apache

スマホでアクセスしたときは「sp」

例えば、

PC用:http://hoge.com
スマホ用:http://hoge.com/sp/

としてページが用意されているとします(このときファイル名は同一)

やりたいことは下記です。

  • PC で http://hoge.com/sp/ にアクセスしたときに、 http://hoge.com を表示したい。
  • 逆にスマホで http://hoge.com にアクセスしたときに、http://hoge.com/sp/ を表示したい。
RewriteEngine on
RewriteBase /

# PCアクセス時は「sp」表示しない
RewriteCond %{REQUEST_URI} /sp/
RewriteCond %{HTTP_USER_AGENT} !(iPod|iPhone|iPad|Android|Windows\ Phone)
RewriteRule ^sp/(.*)$ $1 [R]

# スマホアクセス時は「sp」表示する
RewriteCond %{REQUEST_URI} !/sp/
RewriteCond %{HTTP_USER_AGENT} (iPod|iPhone|iPad|Android|Windows\ Phone)
RewriteRule ^(.*)$ sp/$1 [R]

5行目:URI に「/sp/」が含まれていて、

6行目:user agent がスマホ系ではない場合、

7行目:「sp/」を削除した文字列に置換する。

10行目:URI に「/sp/」が含まれていなくて、

11行目:user agent がスマホ系の場合、

12行目:「sp/」を追加した文字列に置換する。

Windows Phone…

Windows Phone・・つまり Windows 10 Mobile は2019/12/10でサポートが終了しています。

なので今後対応する必要がなくなってくると思います。

参考リンク

Windows 10 Mobile のサポート終了: よくあるご質問

コメント

タイトルとURLをコピーしました