上下文:Apache + PHP-FPM。将网站迁移到新服务器。 404 停止工作。 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>
希望这对将来的人有帮助。
我在 .htaccess 中的重写条件配置错误。我通过添加这些行解决了这个问题:
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^([^/.]+)$ $1.php [NC,L]