nginxのrewrite設定で特定のパスを除き特定ドメインへリダイレクトの設定方法が分かりません

下記のように設定したのですがうまくリダイレクトされませんでした
出来れば複数の特定パスを除きリダイレクトの方法も教えて下さい
if ($request_uri != ^/hogehoge/cgi-bin) {
rewrite ^/(.*) http://hogehoge.com/a/$1 last;
}

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2012/08/15 17:11:33

ベストアンサー

id:studiocherry No.1

回答回数283ベストアンサー獲得回数100

下記のように設定したのですがうまくリダイレクトされませんでした


これだけでは、どのような動作を想定しているのか 分かりにくいです。
URIの例と希望動作を書いてもらえると 答える側としては回答がしやすいです。
ちなみに ログには、なにか記録されていましたか?

リダイレクトの希望動作が、

/hogehoge/cgi-bin 以下のファイルへアクセスした時は、リダイレクトしない。
それ以外の時は、リダイレクトする。

と推測して、回答します。
異なっている場合は、コメントで、質問内容を補足してください。

質問に書かれている != の場合、URI が、「/hogehoge/cgi-bin」に完全一致した場合以外は、すべてリダイレクトされると思います。

推測した条件で、リダイレクトしたい場合は、 != (一致しない)を !~ (含まない)に 変えたら良いと思います。

http://nginx.org/en/docs/http/ngx_http_rewrite_module.html

P.S.
細かいことですが、例示用URLを書く場合のドメインは、hogehoge.com ではなく example.com 等の例示用ドメインを使いましょう。 ( http://www.atmarkit.co.jp/fwin2k/win2ktips/801exampledom/exampledom.html )

id:technote7

!~で出来ました!

質問の内容不足にも関わらず回答頂いてありがとうございます
また例示用ドメインも参考URL記載のexample.com等に変えたいと思います

2012/08/15 17:11:03

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません