微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Apache 2.4 PHP-FPM,捕获错误页面

这是我的vhost文件

 <VirtualHost *:80>
   ServerName awesome.dev

   ## Vhost docroot
   DocumentRoot "/var/www/awesome"

   ## Directories, there should at least be a declaration for /var/www/awesome
   <Directory "/var/www/awesome">
     Options Indexes FollowSymLinks MultiViews
     DirectoryIndex index.PHP
     AllowOverride All
     Require all granted
   </Directory>

   ## Logging
   ErrorLog "/var/log/apache2/w0JhArMoDehc_error.log"
   ServerSignature Off
   CustomLog "/var/log/apache2/w0JhArMoDehc_access.log" combined

   ## Server aliases
   ServerAlias www.awesome.dev

   ## SetEnv/SetEnvIf for environment variables
   SetEnv APP_ENV dev

   ProxyPassMatch ^/(.*\.PHP(/.*)?)$fcgi://127.0.0.1:9000/var/www/awesome/$1
 </VirtualHost>

我正在尝试捕获对不存在的* .PHP文件的所有请求.

例如,如果/var/www/awesome/index.PHP存在并且我转到http://foo.com/index.php我得到了正确的响应,但是如果/var/www/awesome/foo.PHP不存在并且我转到http://foo.com/foo.php,我只是得到文件未找到的响应..

没有读取.htaccess文件,因为Apache将所有内容移交给PHP-FPM.

我需要捕获所有404请求并显示一个常见的错误页面,就像您通常在任何站点上看到的那样.

但是,由于Apache将所有内容都移交给PHP-fpm,它似乎并没有正确处理这些错误.

解决方法:

我曾经有同样的问题,最后我修复了它.

尝试在ProxyPassMatch设置后添加

ProxyErrorOverride on

顺便说一句,别忘了你的

ErrorDocument 404 /path/to/file

设置.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐