nginx:error_page不能用于重写

时间:2013-06-07 20:00:43

标签: nginx url-rewriting

我有这个nginx配置文件:

server {
    listen 80;
    server_name tds.my;
    root /home/tds;
    index index.php;
    error_page 500 502 503 504 /errs/50x.html;
    error_page 400 401 402 403 404 /errs/404.html;

    if ( $request_uri !~ "/errs|index\.php" ) {
            rewrite ^(.+)$ /index.php last;
    }

    location ~ .php$ {
            fastcgi_intercept_errors on;
            fastcgi_index index.php;
            fastcgi_pass unix:/tmp/php-fcgi.sock;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
    }

}

index.php生成状态为500的错误。 链接http://tds.my/index.php会返回静态页面http://tds.my/errs/50x.html,但链接http://tds.my/example.php不会返回静态页面。我认为这是因为使用了重写。

如何配置nginx来解决此问题?

1 个答案:

答案 0 :(得分:1)

请查看指令recursive_error_pages,它对我有用。并感谢Jim D