Мне нужно настроить свой сервер Apache2 для размещения старого веб-приложения, основанного на Joomla 1.5. Apache работает на Debian Stretch с PHP 7 как mod_php. Мне удалось установить PHP 5.6 как модуль FastCgi, и, похоже, он работает как альтернатива PHP 7.
Мой VirtualHost выглядит так:
<VirtualHost *:80>
ServerName site.pl
DocumentRoot /var/www/site/html
DirectoryIndex index.html index.php
<FilesMatch ".+\.ph(p[3457]?|t|tml)$">
SetHandler "proxy:unix:/run/php/php5.6-fpm.sock|fcgi://localhost"
</FilesMatch>
</Virtualhost>
И он очень хорошо работает с базовыми URL-адресами, например:
http://site.pl/index.php
Проблема связана с другими URL-адресами, созданными этой старой CMS, например:
http://site.pl/index.php/category/page
Очевидно, я получаю ошибку 404.
Я не знаю, как сохранять такие URL-адреса и обрабатывать их с помощью прокси FastCgi. Какой FileMatch покрывает этот URL? Любые идеи?






Аргумент в FilesMatch выглядит как регулярное выражение, поэтому вы можете адаптировать его для соответствия URL-адресам, сгенерированным старой CMS, например:
.+\.ph(p[3457]?|t|tml)(/.*)*$
Обратите внимание на (/.*)* в конце, который соответствует дополнительному пути после index.php, но может быть опущен, так что URL-адреса без пути также будут сопоставлены.
К сожалению, это не работает. Я не знаю, почему, но с такой конфигурацией FileMatch не покрывает даже базовые URL-адреса (например, site.pl/index.php).
Можете ли вы попробовать еще раз с добавленным * в конце?
Если у вас есть вопросы по Joomla, отправляйте их на Joomla Stack Exchange.