.htaccessを使ったデバイスごとのURLの振り分け
お世話になります。
自分でやってみてもうまくいかないので、ご回答いただければ幸いです。
htaccessの書き方を教えて下さい。
前提・実現したいこと
・サーバーはxserverです
・HTMLサイト
(1) SPディレクトリが、PCディレクトリのサブディレクトリになっている。
(例)
PCサイト : http://example.com/
SPサイト : http://example.com/sp/
(2) 同一ページは同一のファイル名になっている。
(例)
PCサイト : http://example.com/page01.html
SPサイト : http://example.com/sp/page01.html
やりたいことは
⇒ https://www.seohacks.net/basic/qa/sites_tuning_sp/
上記ページの「3.UAに応じた302リダイレクトの設定」
そして
・PCからスマホサイトにアクセスした時は、PC版のサイトが表示され、「/sp/」なしのURLがブラウザバーに表示される
・スマホからPCサイトにアクセスした時は、スマホ版のサイトが表示され、「/sp/」なしのURLがブラウザバーに表示される
ようにしたいです。
試したこと
こちらのページの
⇒ https://qiita.com/yokoh9/items/2e23198294ba314b4b4b
「デバイスごとに振分けを行い、指定ディレクトリにリダイレクトさせる」を参考に302リダイレクトをかけてみました。
PCから「/sp/」ありのURLにアクセスした場合は意図通りになったのですが
スマホから「http://example.com/」にアクセスすると、ブラウザバー上の表示が「http://example.com/sp/」になってしまいます。
/sp/ありのURLが表示されるとGoogle Analytics上でも/sp/が出てしまい、アクセス解析がしにくくなるので、
スマホで見た時に「スマホ版は表示されるがURLは/sp/無しのurl」にしたいのですが、どう記述すれば良いでしょうか。
.htaccessの現状の記載
以下が現状の記載内容です。一応、どこまで書いたら良いのか分からなかったので、今回の質問とは関係のない部分も全て一緒に記載しています。
#suPHP_ConfigPath/home/example/example.com/xserver_php/ RewriteEngine on RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] RewriteCond %{HTTP_HOST} ^example.com RewriteRule (.*) https://www.example.com/$1 [R=301,L] RewriteCond %{THE_REQUEST} ^.*/index.html RewriteRule (.*)index.html$ https://www.example.com/$1 [R=301,L] RewriteCond %{REQUEST_URI} !/sp/ RewriteCond %{HTTP_USER_AGENT} (iPod|iPhone|iPad|Android|Windows\ Phone) RewriteRule ^(.*)$ sp/$1 [R=302,L] RewriteBase / RewriteCond %{REQUEST_URI} /sp/ RewriteCond %{HTTP_USER_AGENT} !(iPod|iPhone|iPad|Android|Windows\ Phone) RewriteRule ^sp/(.*)$ $1 [R=302,L] RewriteBase / Header set Vary User-Agent
回答1件
あなたの回答
tips
プレビュー