Я пытаюсь создать несколько пользовательских страниц ошибок, но не могу заставить работать 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
Но он по-прежнему просто показывает пустую страницу с кодом ответа 500, когда я ломаю некоторый PHP-код, чтобы вызвать его.
Затем я попытался сделать это последним правилом внутри location ~ \.php$
, но происходит то же самое. Любые идеи, почему пользовательская страница 500 не будет работать?
Я также заметил, что если вы попытаетесь получить доступ к файлу «отказано в доступе» с расширением .php, он не отобразит пользовательскую страницу 403, а вместо этого отобразит встроенную страницу. Есть ли способ сделать так, чтобы правило распространялось и на файлы .php?