前提
サイトメンテナンス作業時に、PCとスマホで各メンテナンス画面を用意して
.htaccessファイル内でUA判別して、それぞれのファイルを表示させたい。
PCの場合は、PCのメンテナンス画面が表示されるが
スマホの場合は、PCのメンテナンス画面が表示されてしまう。
解決方法に詰まり、ここに投稿させていただきました。
よろしくお願いします。
実現したいこと
1..htaccessファイルを利用して、PCとスマホの各メンテナンス画面をそれぞれ表示させたい。
2.指定したIPアドレスからのアクセスの場合、メンテナンス画面は表示しない。
3.PCとスマホのディレクトリ構成
ドキュメントルート/.htaccess ・・・htaccessファイル
ドキュメントルート/mentenance_pc.html ・・・・PCのメンテナンス画面
ドキュメントルート/sp/mentenance_sp.html ・・・スマホのメンテナンス画面
4.スマホでドメインにアクセスした場合、スマホディレクトリにリダイレクト設定させている
ドキュメントルート/index.php
header('Location: https://aaa.bbb.ccc/sp/top.php');
exit;
発生している問題・エラーメッセージ
スマホでアクセスした場合、PCのメンテナンス画面が表示される
該当のソースコード
htaccess
1<IfModule mod_rewrite.c> 2 RewriteEngine On 3 RewriteBase / 4 5 RewriteCond %{REQUEST_URI} !^/mentenance_pc.html 6 RewriteCond %{HTTP_USER_AGENT} !(iPod|iPhone|Android.*Mobile|Windows.*Phone) 7 RewriteCond %{REMOTE_ADDR} !=127.0.0.1 8 RewriteCond %{REMOTE_ADDR} !=×××.××.×××.×× 9 RewriteCond %{REMOTE_ADDR} !=〇〇〇.〇〇.〇〇〇.〇〇〇 10 RewriteCond %{REQUEST_URI} !^/css/ 11 RewriteCond %{REQUEST_URI} !^/img/ 12 RewriteRule ^(.*)$ https://%{HTTP_HOST}/mentenance_pc.html [R=503,L] 13 14 15 RewriteCond %{REQUEST_URI} !^/sp/mentenance_sp.html 16 RewriteCond %{HTTP_USER_AGENT} (iPod|iPhone|Android.*Mobile|Windows.*Phone) 17 RewriteCond %{REMOTE_ADDR} !=127.0.0.1 18 RewriteCond %{REMOTE_ADDR} !=×××.××.×××.×× 19 RewriteCond %{REMOTE_ADDR} !=〇〇〇.〇〇.〇〇〇.〇〇〇 20 RewriteCond %{REQUEST_URI} !^/sp/css/ 21 RewriteCond %{REQUEST_URI} !^/sp/img/ 22 RewriteRule ^sp/(.*)$ ^/sp/mentenance_sp.html [R=503,L] 23</IfModule>
試したこと
RewriteRule ^sp/(.)$ https://%{HTTP_HOST}/sp/mentenance_sp.html [R=503,L]
RewriteRule ^sp/(.)$ /sp/mentenance_sp.html [R=503,L]
として確認しましたが、結果は同じでした。
補足情報(FW/ツールのバージョンなど)
Apache/2.4.37