Я хотел создать php-файл, который принимает код в качестве параметра, а затем обрабатывает каждый передал код ошибки, к сожалению, это не сработало должным образом, поскольку всегда возвращалось пользовательская страница с кодом ошибки 0, даже если фактический код ошибки был другим (403 или 404).
server {
listen 80;
server_name genefit.cc www.genefit.cc;
root /var/www/html;
index index.htm index.html index.php;
charset utf-8;
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
access_log off;
error_log /var/log/nginx/error.log error;
sendfile off;
client_max_body_size 100m;
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass genefit.cc:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_intercept_errors on;
fastcgi_buffer_size 16k;
fastcgi_buffers 4 16k;
}
location ~ /\.ht {
deny all;
}
# Error page configuration
error_page 400 401 402 403 404 500 502 503 504 /error.php?code=$request_uri;
location ~ /error.php$ {
root /var/www/html;
try_files $uri $uri/ =404;
internal;
fastcgi_pass genefit.cc:9000;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/error.php;
fastcgi_param QUERY_STRING $query_string;
}
}
Error
body {
text-align: center;
font-family: Arial, sans-serif;
color: red;
}
.container {
margin-top: 50px;
}
img {
max-width: 100%;
height: auto;
}
Error
Something went wrong. Please try again later.
[img]
======
После попытки решить описанную выше проблему в течение примерно 1 часа я сдался и начал создавать отдельные файлы php в каталог ошибок, например error/403.php и error/404.php. Это привело к появлению слишком большого количества ошибок перенаправления, упомянутых в заголовке этого сообщения:
server {
listen 80;
server_name genefit.cc www.genefit.cc;
root /var/www/html;
index index.htm index.html index.php;
charset utf-8;
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
sendfile off;
client_max_body_size 100m;
location ~ /\.ht {
deny all;
}
# PHP files handling
location ~ \.php$ {
include fastcgi_params;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass genefit.cc:9000;
fastcgi_index index.php;
fastcgi_intercept_errors on;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_buffer_size 16k;
fastcgi_buffers 4 16k;
}
# Error pages
error_page 400 /error/400.php;
error_page 401 /error/401.php;
error_page 402 /error/402.php;
error_page 403 /error/403.php;
error_page 404 /error/404.php;
error_page 500 /error/500.php;
error_page 502 /error/502.php;
error_page 503 /error/503.php;
error_page 504 /error/504.php;
location / {
try_files $uri $uri/ /error/404.php;
}
# Serve error pages from the /error/ directory
location /error/ {
internal;
root /var/www/html/;
alias /var/www/html/error/;
try_files $uri $uri/ =404;
# PHP files handling
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass genefit.cc:9000;
fastcgi_intercept_errors off;
}
}
}
Error
body {
text-align: center;
font-family: Arial, sans-serif;
color: red;
}
.container {
margin-top: 50px;
}
img {
max-width: 100%;
height: auto;
}
Error
Page not found. Please check the URL or try again later.
[img]
Подробнее здесь: https://stackoverflow.com/questions/788 ... rror-pages
Мобильная версия