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

问题描述 投票:0回答:2

上下文:Apache + PHP-FPM。将网站迁移到新服务器。 404 停止工作。 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 的使用,所以这可能是一个相关的问题。任何有关如何解决此问题的指示将不胜感激。

php apache .htaccess fpm
2个回答
2
投票

我自己解决了。

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>

希望这对将来的人有帮助。


0
投票

我在 .htaccess 中的重写条件配置错误。我通过添加这些行解决了这个问题:

RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^([^/.]+)$ $1.php [NC,L] 
© www.soinside.com 2019 - 2024. All rights reserved.