Seu problema é o uso de <LocationMatch>
para proxy ao php-fpm, que é aplicado a todas as URLs antes verificando se existe um arquivo correspondente. ( ProxyPassMatch
faria a mesma coisa com mais elegância, a propósito). Para citar o documentação sobre <Location>
:
<Location>
sections operate completely outside the filesystem.
No entanto, você obviamente do quer verificar se o arquivo PHP existe antes de passá-lo para o php-fpm. Isso pode ser feito usando <FilesMatch>
e SetHandler
:
<FilesMatch \.php$>
SetHandler "proxy:fcgi://127.0.0.1:9001/"
</FilesMatch>
(Eu mesmo estou usando soquetes unix aqui, como na documentação que eu fiz o link acima, então eu não estou 100% confiante de que esta é a sintaxe certa para o URL.)
Desta forma, apenas arquivos serão redirecionados para php-fpm, e suas regras mod_rewrite terão a chance de serem aplicadas até mesmo a URIs que terminem em .php quando os arquivos correspondentes não existirem. / p>
Note também que usar FallbackResource
não tem nenhuma influência sobre isso, porque novamente o <LocationMatch>
tem prioridade e procura até mesmo URIs inexistentes para php-fpm. Ele apenas redireciona aqueles URIs que, de outra forma, usariam o manipulador 404 embutido do Apache, mas isso não acontece como você já observou.