headers code php nginx http-status-code-404

php - code - Nginx-Personalización de la página 404



return http 200 ok php (5)

¡Ten cuidado con la sintaxis! Great Turtle los usó indistintamente, pero:

error_page 404 = /404.html;

Devolverá la página 404.html con un código de estado de 200 (porque = ha transmitido eso a esta página)

error_page 404 /404.html;

Devolverá la página 404.html con un código de error 404 (el original).

https://serverfault.com/questions/295789/nginx-return-correct-headers-with-custom-error-documents

Nginx + PHP (en fastCGI) funciona muy bien para mí. Cuando ingreso una ruta a un archivo PHP que no existe, en lugar de obtener la página de error 404 predeterminada (que viene para cualquier archivo .html no válido), simplemente obtengo un "No se especificó ningún archivo de entrada".

¿Cómo puedo personalizar esta página de error 404?


El parámetro "error_page" no es suficiente.

La solución más fácil es

server{ root /var/www/html; location ~ /.php { if (!-f $document_root/$fastcgi_script_name){ return 404; } fastcgi_pass 127.0.0.1:9000; include fastcgi_params.default; fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name; }

Por cierto, si quieres que Nginx procese el estado 404 devuelto por las secuencias de comandos de PHP, debes agregar

fastcgi_intercept_errors en;

P.ej

location ~ /.php { #... error_page 404 404.html; fastcgi_intercept_errors on; }


Estas respuestas ya no se recomiendan porque try_files funciona más rápido que if en este contexto. Simplemente agregue try_files en su bloque de ubicación php para probar si el archivo existe; de ​​lo contrario, devuelva un 404.

location ~ /.php { try_files $uri =404; ... }


Puede configurar una página de error personalizada para cada bloque de ubicación en su nginx.conf, o una página de error global para el sitio como un todo.

Para redirigir a una página 404 no encontrada simple para una ubicación específica:

location /my_blog { error_page 404 /blog_article_not_found.html; }

Una página 404 en todo el sitio:

server { listen 80; error_page 404 /website_page_not_found.html; ...

Puede adjuntar códigos de error estándar para tener una sola página para varios tipos de errores:

location /my_blog { error_page 500 502 503 504 /server_error.html }

Para redirigir a un servidor totalmente diferente, suponiendo que tiene un servidor en sentido ascendente llamado server2 definido en su sección http:

upstream server2 { server 10.0.0.1:80; } server { location /my_blog { error_page 404 @try_server2; } location @try_server2 { proxy_pass http://server2; }

El config puede brindarle más detalles, o puede buscar en Google los términos nginx.conf y error_page para ver ejemplos de la vida real en la web.


Utiliza la propiedad error_page en la config nginx.

Por ejemplo, si tiene la intención de configurar la página de error 404 en /404.html , use

error_page 404 /404.html;

Configurar la página de error 500 a /500.html es tan fácil como:

error_page 500 /500.html;