前提・実現したいこと
nginxにて、今運用しているサイトの中に、PC用とスマホ用に作ったページがあり、「スマホから開いた場合、スマホ用のページを表示させる」という挙動を加えたいと考えております。
最終的には、以下設定ファイルにて「index.php」の記述を省略し、
なおかつ正常に画面が表示されるようにしたいです。
nginx.confでの設定は以下の通りです。
location /test/ { if ($http_user_agent ~* (iPhone|iPod|Android.*Mobile)){ return 301 https://www.mysite.jp/test/s/index.php; } }
※testやmysite.jpは仮名です。
上記設定により、スマホ画面からのリダイレクトは問題なく実行できているのですが、「index.php」の記述がある状態ですとサイト表示の際に画像データやstyleの表示が丸々消えてしまうことが分かりました。
ならばindex.phpの記述を消せば大丈夫だなと思って消してみると、
今度はページが表示されなくなってしまう事象が発生してしまいます。。
index.phpはデフォルトでは記述がなくても問題ない認識でしたが、
リダイレクトにおいてはそうではなさそうです。
色々と調べて
「return 301 https://www.mysite.jp/test/s/index.php;」の記述に
至ったのですが、ダメっぽいですね。。
殆どのサイトではレスポンシブ対応が施されているのもあってか、
スマホの場合のリダイレクト処理におけるindex.phpの省略方法について
説明しているサイトがなくてほとほと困っています。(あっても参考にならない)
本事象についてお心当たりのある方、助言頂けると助かります。
補足情報(FW/ツールのバージョンなど)
以下環境にてHP運用をしています。
サーバOS:CentOS Stream8 x86_64
nginx:1.18.0
php:7.2.24
あなたの回答
tips
プレビュー