前提
・デフォルトのurlはhttp://XX.XX.XX.XX/pc/
・スマホから開いた際にhttp://XX.XX.XX.XX/pc/s/に遷移すること
・index.phpは省略された状態であること
詰まっている箇所
掲題の通りですが、nginx.confにてリダイレクト処理を追加しましたが、想定通りの処理がされずに困っています。
- 想定と結果
想定:スマホから開いた際にhttp://XX.XX.XX.XX/pc/s/に遷移すること
結果:スマホから開いてもhttp://XX.XX.XX.XX/pc/のまま
nginx.confのリダイレクト処理内容
set $targetUri $request_uri; #遷移対象URL location /pc/ { if ($http_user_agent ~* "(iPhone|iPod|Android.*Mobile)"){ # スマホから開いた場合、遷移対象URLに/s/index.phpのurlを設定 set $targetUri http://XX.XX.XX.XX/pc/s/index.php; } # 遷移対象URLのファイル名がindex.phpの場合 if ($targetUri ~* "^(.*/)index.php$") { # return 301 $1; # http://XX.XX.XX.XX/pc/s/に遷移の想定だが遷移しない(index.phpは省略) rewrite ^(.*)/index.php$ $1/ permanent; }
上記に「return 301 $1;」の記載がありますが、これだと
http://XX.XX.XX.XX/pc/s/に遷移できるものの、「このページは動作していません」「XX.XX.XX.XXでリダイレクトが繰り返し行われました」と怒られてしまいます。(なのでコメントにしています)
ページが見つからないと
怒られてしまいます。(なのでコメントにしています)
いろいろといじってますが、全て失敗するので、そもそもリダイレクト自体できるのでしょうか?
本件で、お心当たりのある方、いらっしゃいましたら助言いただけると助かります。
補足情報(FW/ツールのバージョンなど)
以下環境にてHP運用をしています。
サーバOS:CentOS Stream8 x86_64
nginx:1.18.0
php:7.2.24
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。