5年前寫的站, 當時是在apache下寫的error page, 換了nginx后, 404頁面直接跳到了500 server內部錯誤.
僅僅須要在配置
try_files 的時候指定一下就能夠了
我的是debian, 在/etc/nginx/site-available/default 里面location /
server{
<span style="white-space:pre"> </span>location / { <span style="white-space:pre"> </span>try_files $uri $uri/ /error/404.php?c=404 =404; <span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>error_page 403 /error/403.php; <span style="white-space:pre"> </span>error_page 404 /error/404.php; <span style="white-space:pre"> </span>error_page 500 501 502 503 504 /error/500.php;
}
然后reload下nginx就可以
參考http://wiki.nginx.org/HttpCoreModule#try_files
說明下, 我把頁面放在了 站點文件夾下的error文件夾下. 比方站點放在/var/www/ 錯誤頁面就在/var/www/error/403.php ...
測試的話非常easy, 403是沒權限比方你的站點文件夾css文件夾, 圖片文件夾什么的, 404是不存在, 隨便輸個地址就能夠, 500上是server的, 這里我停掉php-fpm來測試. 效果例如以下