6

PHPリクエストを処理するnginxサーバーがありますが、非標準のポート(ポート12345など)でリッスンするように構成されています。企業のIT部門が「いいえ」と言っているため、リッスンポートを変更できません。

データセンターには、www.domain.com:80からポート12345のnginxボックスにリクエストを転送するプロキシがあります。

配置する必要のある静的な301リダイレクトがいくつかありますが、予期しない動作が発生しています。

site.conf "server {}"ブロックのリダイレクト例:

rewrite ^/foo$ /bar/foo/ permanent;

www.domain.com/fooにアクセスしようとすると、リダイレクトが発生しますが、ブラウザーをwww.domain.com:12345/bar/foo/に転送しようとします。

私の質問は、nginxにユーザーを正しいポート(www.domain.com/bar/foo/)にリダイレクトさせるにはどうすればよいですか?

たぶんもっと良い質問は、私が求めていることを行う正しい方法は何ですか?入る必要のあるリダイレクトは50以上あり、それらのリダイレクトごとに「場所」セクションを作成したくありません。

4

1 に答える 1

2

より明示的な書き換えを提供できます。次のことを試してください。

rewrite ^/foo/ $scheme://www.domain.com:80/bar$request_uri permanent;

非常に特殊なケースなので、^/foo/の代わりに使用するつもりだったと思います。必要に応じて修正してください。^/foo$^/foo$

于 2012-12-17T20:23:39.150 に答える