自定义 404 页面未在 Apache + PHP-FPM 中显示

Custom 404 page not being displayed in Apache + PHP-FPM

上下文:Apache + PHP-FPM。将网站迁移到新服务器。 404s 停止工作。 404 错误现在不再重定向到自定义页面,而是显示文本“找不到文件”。

期望:https://nobleme.com/404

现实:https://nobleme.com/notapage

我的 .htaccess 曾经在我以前的服务器上使用以下指令(我没有接触过)工作:

RewriteEngine On
ErrorDocument 404 https://nobleme.com/404

我已尝试在我的 httpd.conf 和 website.conf 中包含以下指令,但无济于事:

ProxyErrorOverride On

我以前的服务器和当前服务器之间唯一显着的区别是 PHP-FPM 的使用,所以这可能是一个相关的问题。任何有关如何解决此问题的指示将不胜感激。

自己解决了。

ProxyErrorOverride 是个糟糕的主意,不要那样做。

改为编辑您的 /etc/httpd/conf.d/php.conf

寻找SetHandler

并添加一个条件,即在处理发生之前文件必须存在

然后重启你的apache来更新配置

这是我的 php.conf:

部分的示例
  <FilesMatch \.(php|phar)$>
    <If "-f %{REQUEST_FILENAME}">
      SetHandler "proxy:unix:/run/php-fpm/www.sock|fcgi://localhost"
    </If>
  </FilesMatch>

希望这对以后的人有所帮助。