自定义 404 页面未在 Apache + PHP-FPM 中显示
Custom 404 page not being displayed in Apache + PHP-FPM
上下文:Apache + PHP-FPM。将网站迁移到新服务器。 404s 停止工作。 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>
希望这对以后的人有所帮助。
上下文:Apache + PHP-FPM。将网站迁移到新服务器。 404s 停止工作。 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>
希望这对以后的人有所帮助。