下記のように設定したのですがうまくリダイレクトされませんでした
出来れば複数の特定パスを除きリダイレクトの方法も教えて下さい
if ($request_uri != ^/hogehoge/cgi-bin) {
rewrite ^/(.*) http://hogehoge.com/a/$1 last;
}
下記のように設定したのですがうまくリダイレクトされませんでした
これだけでは、どのような動作を想定しているのか 分かりにくいです。
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 )