初歩的な質問でしたらすみません。。。
なんと検索したらいいかもわからず、ヒントだけでもいただけると助かります。
1.概要
スマホでアクセスしたときにスマホ専用ページにアクセスするリダイレクトです。
htaccess
1RewriteCond %{REQUEST_URI} !^/(sp)/.*$ 2RewriteCond %{HTTP_USER_AGENT} (iPod|iPhone|Android|Windows\ Phone|BlackBerry|Symbian) [NC] 3RewriteCond %{HTTP_COOKIE} !vm=pc [NC] 4##RewriteRule ^(/?|index.html)$ sp/index.html [L] ##これだとCSSなど適用されていない不正な表示 5##RewriteRule ^(/?|index.html)$ /sp/ [L] ##これだとCSSなど適用されていない不正な表示 6##RewriteRule ^(.*)$ sp/$1 [L] ##これだと500エラーになる 7##RewriteRule ^(/?|index.html)$ sp/sitemap.html [L] ##これだとCSSなど適用されていない不正な表示 8##RewriteRule ^(/?|index.html)$ index.html [L] ##これだと正常表示(PCサイトのトップページ。CSS、画像あり) 9##RewriteRule ^(/?|index.html)$ html/p/c/c_2.html [L] ##これだと正常表示(PCサイトのページ。CSS、画像あり) 10##RewriteRule ^(/?|index.html)$ kensaku/ [L] ##これだと正常表示(PCサイトの検索ページ。CSS、画像あり) 11RewriteRule ^(/?|index.html)$ sp/test.html [L] ##これだと正常表示(CSS、画像なし) 12
2.ファイル階層
htaccess
sp/index.html
(htaccessとspディレクトリは同一階層同一ディレクトリ内にあり、index.htmlはspディレクトリ直下にある)
3.症状
このindex.htmlに下記条件でアクセスするとCSSなどが適用されていない画像なども読み込まれていない非常に簡易的なhtmlで表示されます。
デバイス:iPhone
ブラウザ:Chrome
URL「https://test.site/」
ところが、下記条件だと正常にsp/index.htmlの内容が表示されます。
デバイス:iPhone
ブラウザ:Chrome
URL「https://test.site/sp/」
ほかにも、htaccessコード中にコメントしてあるように、sp/test.htmlや、PCサイトでも試してみましたが、spディレクトリ配下のCSSと画像があるときだけ正常に表示されません。
一体なぜhtaccessを経由してアクセスすると正常に表示されないのでしょうか?
どこを調べるべきでしょうか?
追記1:
htaccess
1RewriteRule ^(/?|index.html)$ https://test.site/sp/ [L]
と、したところ、正常に遷移するようになったのですが、
同一サイト内で絶対パス?を記載してリダイレクトすることに問題はないのでしょうか?
同一サイト内のスマホ専用ページへのリダイレクトに絶対パスを使用することのメリットデメリットを教えてほしいです。
(もしくはそういった知見を得るための検索キーワードだけでも...)
これで問題なければこれでもいいかと思うのですが、
どんなサイトを見てもスマホページへのリダイレクトはRewriteRule ^(/?|index.html)$ /sp/ [L]とディレクトリのみの指定でしたし、
当方が作成しているtest.siteにつきましてもリニューアル前(別のレンタルサーバに配置されていたとき)はRewriteRule ^(/?|index.html)$ /sp/ [L]で正常動作しておりました。
リニューアル前の当該サイト含め、通常ディレクトリのみの指定しかしないサイトが多いのには何か理由があるのか?と思うのですが、いかがでしょうか?
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/03 05:52
2019/12/05 05:56
2019/12/05 06:37
2019/12/11 05:50