nginx error_page 404 用 php header 无法跳转

之前用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; 就好了

=。= 

 

posted on 2009-06-26 13:57  guoadou  阅读(3722)  评论(1编辑  收藏  举报