Nginx PHP error_page正在下载/ ERR_INVALID_RESPONSE

时间:2017-10-27 19:06:06

标签: php nginx

我正在努力让error_page指向PHP页面,但由于某些原因这些页面无法正常工作。我已经完成了一些研究,并且无法找到任何有这个问题的人,或任何修复它的人。

例如,假设我有以下文件结构:

/discord
-- /error
---- 404.php
---- test.php

test.php执行正常,而404.php则没有。如果我进入我的Nginx配置并将404错误页面从404.php交换到test.php,结果也会交换。 test.php无法正常工作,404.php工作正常。重要的是要注意,对于HTML错误页面,这非常合适。

现在,"工作不正常,"我的意思是服务器根本没有响应,或者文件真的下载到我的电脑(PHP代码和所有)。如果我尝试访问会产生其中一个错误的网页,则会收到Chrome错误ERR_INVALID_RESPONSEShowcase of response, according to Chrome

另一方面,如果我在浏览器中直接访问该页面(即/discord/error/404.php),则会下载该文件。看起来有些情况下访问生成错误的页面也会下载它,但我可能会弄错,因为我不记得如何复制它。

以下是/discord别名的配置:

location /discord {
        alias /var/karaoke/discord/www/html;

        location ~ \.php$ {
            try_files $uri /discord/error/404.php;

            fastcgi_split_path_info ^(.+\.php)(/.+)$;

            fastcgi_pass   unix:/var/run/php-fpm/www.sock;
            fastcgi_index  index.php;
            include        fastcgi_params;
            fastcgi_param  SCRIPT_FILENAME  $request_filename;
            fastcgi_intercept_errors on;

        }

        error_page 404 /discord/error/404.php;
            location = /discord/error/404.php {
        }
        error_page 403 /discord/error/403.php;
            location = /discord/error/403.php {
        }
        error_page 500 502 503 504 /discord/error/50x.php;
            location = /discord/error/50x.php {
        }
    }

很难记住并列出我尝试过的所有内容,但这里有一些:

    {li} try_files $rui /discord/error/404.php位于~ \.php$位置区块 {li> recursive_error_pages位于~ \.php$位置区块的开头
  • 停用fastcgi_intercept_errors
  • ~ \.php$定义之前和之后移动error_page位置块。

感谢任何帮助。谢谢!

0 个答案:

没有答案