Nginx custom PHP error_pages with different header

2019-07-19 01:49发布

问题:

using Nginx 0.8.54 : I setup PHP error page to do redirections for some links and 404 for others and display custom HTML body. nginx

server {
 error_page 404 = /err/error.php?error=404;
}

error.php

<?php
if( $_SERVER['REQUEST_URI'] == "/blah" ){
    header('Status: 301 Moved Permanently');
    header('location: http://localhost/ ');
}else
    header('Status: 404 Not Found');

echo 'This is a custom Error Page';
?>

Nginx does the redirection with no problem but for the 404 custom page, Nginx sends the 404 headers and displays the default Nginx page instead of the 'This is a custom Error Page' text.

回答1:

Have you tried not setting the header('Status: 404 Not Found'); twice ? (e.g. this is already a 404 error page)