【发布时间】:2014-11-06 05:50:52
【问题描述】:
这是我的虚拟主机文件:
<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,我只会得到File not found. 的响应.
.htaccess 文件未被读取,因为 Apache 将所有内容都交给了 PHP-FPM。
我需要捕获所有 404 请求并显示一个常见的错误页面,就像您通常在任何网站上看到的那样。
但是,由于 Apache 将所有内容都交给了 php-fpm,它似乎并没有正确处理这些错误。
【问题讨论】: