之前用Apache的时候,只需要设置
ErrorDocument 404 /404.php
就可以在 404.php 中根据不同的 REQUEST_URI 跳转到不同的页面去,让从搜索引擎过来的失效URL可以跳转到新的地址去
升级到 nginx 后的设置
error_page 404 /404.php;
结果发现确实执行了 404.php ,但自己设置的HTTP header无效,无论header怎么设置,永远是返回 404 Not Found.
临时解决方案:
在 rewrite rule 的最后增加
if (!-e $request_filename) {
rewrite ^(.*)$ /404.php last;
}
忽略 error_page 404
# 2009-07-09 update ----------------------------
nginx 没有问题,是我自己的问题
把 error_page 404 /404.php; 改成 error_page 404 = /404.php; 就好了
=。=