Apache 2.4: ProxyPassMatch предотвращает mod_rewrite?

Apache 2.4: ProxyPassMatch предотвращает mod_rewrite?

Я пытаюсь настроить новую среду разработки в Docker с помощью:

  • Bitnami Apache 2.4 - bitnami/apache:2.4
  • Битнами PHP 8.0 - bitnami/php-fpm:8.0
  • Bitnami Mysql 5.7 - bitnami/mysql:5.7

Все работает отлично, за исключением:

В моем vhost.conf я перенаправляю php-файлы в php-fcgi с ProxyPassMatch:

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

Моя проблема в том, что мне нужно переписать *.php-файлы в подпапке "dbeS" в "index.php?id=filename". RewriteRule в .htaccess выглядит так:

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

Но он просто не работает. Когда я открываю в браузере http://localhost/dbeS/mytest.php, я должен быть перенаправлен на http://localhost/dbeS/index.php?id=mytest. Но вместо этого он открывает http://localhost/dbeS/mytest.php (который является пустым файлом).

Я где-то читал, что проблема в том, что ProxyPassMatch выполняется до .htaccess, так что .htaccess полностью игнорируется. Поэтому мне нужно активировать php fcgi с filematch:

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

Но это тоже не работает. Результат: "Файл не найден". Есть ли простое решение этой проблемы? Надеюсь, кто-нибудь здесь подскажет, как решить эту проблему.
Пока, Йорг

Я только что решил проблему:

Мне пришлось изменить FilesMatch на: <FilesMatch .php$> SetHandler "proxy:fcgi://php:9000"

Затем мне пришлось поместить его в Virtualhosts. Кроме того, у меня были неправильные номера портов в моем Virtualhost: я изменил <VirtualHost *:80> на <VirtualHost *:8080> и <VirtualHost *:443> на <VirtualHost *:8443>. Теперь, кажется, все работает так, как и ожидалось.

решение1

Я только что решил проблему:

Мне пришлось изменить FilesMatch на: <FilesMatch .php$> SetHandler "proxy:fcgi://php:9000"

Затем мне пришлось поместить его в Virtualhosts. Кроме того, у меня были неправильные номера портов в моем Virtualhost: я изменил <VirtualHost *:80> на <VirtualHost *:8080> и <VirtualHost *:443> на <VirtualHost *:8443>. Теперь, кажется, все работает так, как и ожидалось.

Связанный контент