SEが教えるEC運営のブログ ウェブ運用と開発現場を経験したSEのTIPS
TOP > BLOG > IT記事

nginxのリダイレクトでクエリー文字列が含まれる場合の対処方法

早川朋孝 早川朋孝
EC専門のSE

nginxのリダイレクトでは転送元のurlにクエリーが含まれる場合は、シンプルにリダイレクトすることはできない。

こういうURLがあるとしよう。
cat-marketing/blog_detail?=xxxx

例えば、こう書いてもリダイレクトは機能しない。

location = /cat-marketing/blog_detail?=xxxx {
return 301 https://$host$request_uri;
}

ではどうすればいいかと言うと、以下のようにすればいい。これはクエリーが999の時にだけ別の記事に転送するという例だ。

set $keyword_name “”;
if ($args ~ “blog_detail=(.*)”) {
set $keyword_name $1;
}
if ($keyword_name = “999”) {
rewrite ^/blog_detail.*$ https://hogehoge/article_?=1500?;
break;
}

少し解説をすると、まず適当な変数を空の値で初期化する。値が999以外の時の処理を先に書き、999の時にだけ転送する処理を記述する。

×

メルマガ登録

SEが商品登録、在庫管理、発注などのEC業務を効率よくプログラムで実施する方法を無料配信します。

  • APIやツールによる業務効率化
  • 広告運用に関するTips
  • CVRを改善するアクセス解析のコツ
このブログを書いてる人
早川 朋孝 EC専門のSE
IT業界歴20年のエンジニアです。ネットショップ勤務で苦労した経験から、EC・ネットショップ事業者に向けて、バックオフィス業務の自動化・効率化を提案するSEをしています。
Web運用の経験もあり、アクセス解析、広告運用が得意で、広告APIとプログラムとの合わせ技で並の広告代理店にはできない提案が可能です。
プロフィール
API連携の相談にのります
趣味は読書、ピアノ、マリノスの応援など
PAGE TOP