.htaccessでスマートフォンとPCの振り分けをしようとおもっているのですが、なかなかうまく行きません。
WordPressを使用してpublic_htmlの直下に「sp」フォルダを生成し、そのフォルダ内に更にWordPressを入れスマホサイトとして制作しています。
PCサイトのほうの.htaccessに
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/sp/.*$
RewriteCond %{HTTP_USER_AGENT} (iPhone|Android.*Mobile|BlackBerry|Windows.*Phone) [NC]
RewriteCond %{HTTP_USER_AGENT} !iPad [NC]
RewriteCond %{QUERY_STRING} !site=pc
RewriteRule ^(.*)$ sp/$1 [R=301,L]
</IfModule>
Header set Vary User-Agent
このように現在書いていますが、トップページのリダイレクトは成功しているのですが、下層ページからアクセスした際に/spが付かずPCのページになってしまいます。それにCSSも効いていません。
この辺がよくわかっていなくて苦戦しています。なぜRewriteRule が無視されてしまっているのでしょうか?それとも書き方が間違っているのでしょうか?
無知でお恥ずかしい限りですが、どなたかご教示願えませんでしょうか。
みんなの回答 4 件
ご教授じゃなくてご教示な。
お前ほんとに恥ずかしい奴だな。
WordPressを使っているならis_mobile()じゃダメなの?
WordPressなら慣れないコードを考えるより、プラグイン探した方が早いですよ。
htaccessは地味によく使う必須技。知恵袋で聞いてみそ。結果報告よろしく。
関連するトピックス