2016-09-05 11 views
2

私は自分のnginx.confにリバースプロキシを設定しています。とてもうまく動作します。nginxのプロキシからページを転送する方法はありますか?

location /foo/ { 
    proxy_pass http://localhost:5000/; 
    proxy_intercept_errors on; 
    proxy_redirect off; 
} 

と私はまた、エラー要求を処理:あなたが見ることができるように

location @404 { 
    #redirect to http://localhost:5000/foo/index.html 
    return 302 /foo/index.html; 
} 
error_page 404 = @404; 

が、私はindex.htmlをにリダイレクトするために302を使用しています。これまで完璧に動作しています。

しかし、私が望むものはリダイレクトしません。インデックスページをブラウザに転送したい (私が必要とする理由は、私がhtml5モードを有効にして、anglejsアプリで#を削除するときに、リフレッシュの問題を処理したいということです)

これを行う方法はありますか?

+1

あなたは 'error_page 404 = /foo/index.html;'を試したことがありますか? –

+0

@Sergio、私はあなたのソリューションを試しました、それだけで動作します!ああ、ありがとう! – yukuan

+0

@yukuan:ハァッ?私は何も提案しなかったのですか? :) –

答えて

1

あなたの名前付きの場所でリダイレクトが強制されています。 error_pageの処理では、リダイレクトは必要ありません。あなたは、プロキシの場所によって処理されerror_page文でローカルURIを指定することができます。たとえば

location /foo/ { 
    proxy_pass http://localhost:5000/; 
    proxy_intercept_errors on; 
    proxy_redirect off; 
} 
error_page 404 = /foo/index.html; 

は多くのためthis documentを参照してください。

関連する問題