Apache 2.4: ¿ProxyPassMatch impide mod_rewrite?

Apache 2.4: ¿ProxyPassMatch impide mod_rewrite?

Intento configurar un nuevo entorno de desarrollo en Docker, con:

  • Bitnami Apache 2.4 - bitnami/apache:2.4
  • Bitnami PHP 8.0 - bitnami/php-fpm:8.0
  • Bitnami Mysql 5.7 - bitnami/mysql:5.7

Todo está funcionando bien, excepto:

En mi vhost.conf redirijo archivos php a php-fcgi con ProxyPassMatch:

LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://php:9000/app/$1

Mi problema es que necesito reescribir los archivos *.php en una subcarpeta "dbeS" a "index.php?id=filename". La RewriteRule en .htaccess se ve así:

  RewriteRule ^dbeS/(.*)\.php$ dbeS/index.php?id=$1 [QSA,L]

Pero simplemente no funciona. Cuando abro en el navegador http://localhost/dbeS/mytest.php, debería ser redirigido a http://localhost/dbeS/index.php?id=mytest. Pero en lugar de eso abre http://localhost/dbeS/mytest.php (que es un archivo vacío).

Leí en alguna parte que el problema es que ProxyPassMatch se ejecuta antes de .htaccess, por lo que .htaccess se ignora por completo. Entonces debería activar php fcgi con filematch:

<FilesMatch \.php$>
  SetHandler "proxy:fcgi://php:9000/app/"
</FilesMatch>

Pero esto tampoco funciona. El resultado es "Archivo no encontrado". ¿Existe una solución fácil para este problema? Espero que alguien aquí tenga una idea de cómo resolver este problema.
Adiós Jörg

Acabo de resolver el problema:

Tuve que cambiar FilesMatch a: <FilesMatch .php$> SetHandler "proxy:fcgi://php:9000"

Luego tuve que ponerlo dentro de Virtualhosts. Además, tenía números de puerto incorrectos en mi Virtualhost: cambié <VirtualHost *:80> a <VirtualHost *:8080> y <VirtualHost *:443> a <VirtualHost *:8443>. Ahora parece funcionar como se esperaba.

Respuesta1

Acabo de resolver el problema:

Tuve que cambiar FilesMatch a: <FilesMatch .php$> SetHandler "proxy:fcgi://php:9000"

Luego tuve que ponerlo dentro de Virtualhosts. Además, tenía números de puerto incorrectos en mi Virtualhost: cambié <VirtualHost *:80> a <VirtualHost *:8080> y <VirtualHost *:443> a <VirtualHost *:8443>. Ahora parece funcionar como se esperaba.

información relacionada