Я должен настроить свой сервер 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-адреса без пути также сопоставляются.
Других решений пока нет …