我有上面提到的设置。一切正常,除了一个问题,对于丢失的 .php 文件,我总是得到一个带有“找不到文件”消息的空白页面(顺便说一句,带有 404 状态代码)。我的虚拟主机中有 ErrorDocument 404 行,但看起来它在 FastCGI 的情况下不起作用(对于未路由到 FastCGI 的文件,它仍然有效)。在此配置中是否有正确处理 404 的方法?这是我的虚拟主机:
<VirtualHost *:80>
ServerAdmin info@domain.com
ServerName domain.com
ServerAlias www.domain.com
DocumentRoot /var/www/xxx/yyy/
<Directory /var/www/xxx/yyy>
Options FollowSymLinks -MultiViews
AllowOverride FileInfo AuthConfig Limit Options
Order allow,deny
allow from all
</Directory>
FastCgiExternalServer /var/www/xxx/yyy/php.fastcgi -socket /tmp/php-fpm -pass-header Authorization
Action php-fpm-yyy /php.fastcgi virtual
<FilesMatch ".+(php|html)$">
SetHandler php-fpm-yyy
</FilesMatch>
ErrorDocument 404 /map.php
ErrorLog ${APACHE_LOG_DIR}/yyy/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/yyy/access.log combined
</VirtualHost>