10

カスタム エラー ページをいくつか作成しようとしていますが、500 ページが機能しないようです。

私は次の設定を持っています:

server {
    listen 80;

    root /var/www/devsite;
    index index.php;
    server_name devsite;

    error_page 403 = /error.php?code=403;   
    error_page 404 = /error.php?code=404;
    error_page 500 = /error.php?code=500;

    location / {
        try_files $uri =404;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
    }

}

最初は、それが PHP ファイルだからかもしれないと思ったので、次のように変更しました。

error_page 500 = /error.php?code=500;

静的ページへ:

error_page 500 /500.html

しかし、PHPコードを壊してトリガーすると、500応答コードを含む空白のページが表示されます。

次に、それを内部の最後のルールにしようとしましたlocation ~ \.php$が、同じことが起こります。カスタム 500 ページが機能しない理由はありますか?

また、拡張子が .php の「アクセス拒否」ファイルにアクセスしようとすると、カスタム 403 ページが表示されず、代わりに組み込みページが表示されることにも気付きました。ルールを .php ファイルにも適用する方法はありますか?

4

1 に答える 1