2016-10-06 8 views
1

デフォルトでは、NGINXが404を返すと、デフォルトのHTMLがレンダリングされます。たとえば、次のようになります。リダイレクトなしのNGINXカスタム404ページ

<html> 
<head><title>404 Not Found</title></head> 
<body bgcolor="white"> 
<center><h1>404 Not Found</h1></center> 
<hr><center>nginx/1.10.0 (Ubuntu)</center> 
</body> 
</html> 

このHTMLはカスタマイズしたいが、URLは変更しないでください。私は404エラー用のエラーページを設定しようとしました:

error_page 404 /404.html 

しかし、この最初のは/404.htmlにブラウザをリダイレクトします。

リダイレクトせずに404 HTMLをカスタマイズする方法はありますか?

+2

'error_page 404 /404.html;'リダイレクトを生成してはなりません。完全なURLを指定することで強制的にリダイレクトすることができますが、あなたの質問にあるフォームでリダイレクトを生成すべきではありません。詳細については、[このドキュメント](http://nginx.org/en/docs/http/ngx_http_core_module.html#error_page)を参照してください。 –

+0

ああ、そうです。私はもう一度試しましたが、期待どおりに動作します。 '/ 404.html'にリダイレクトされていた設定の内容は不明です。ありがとう! – scttnlsn

答えて

1

はnginxののerror_pageproxy_intercept_errorsディレクティブを使用することにより、あなたは次のようにそれを行うことができかもしれnginxの公式サイト上で

詳細設定

server { 
    ## other config 
    ## here the proxy_intercept_errors directive is the key 
    proxy_intercept_errors on; 
    error_page 500 502 503 504 /50x.html; 
    location = /50x.html { 
     ## your 50x.html file parent directory 
     root /var/www; 
    } 
    error_page 404 /404.html; 
    location = /404.html { 
     ## your 404.html file parent directory 
     root /var/www; 
    } 
} 

文書:

proxy_intercept_errorserror_page

関連する問題