Apache2, FastCGI, PHP5 и URL-адреса без суффикса .php - PullRequest
0 голосов
/ 10 мая 2018

Я должен настроить свой сервер 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? Есть идеи?

1 Ответ

0 голосов
/ 10 мая 2018

Аргумент в FilesMatch выглядит как регулярное выражение, поэтому вы можете адаптировать его для соответствия URL-адресам, созданным старой CMS, например:

.+\.ph(p[3457]?|t|tml)(/.*)*$

Обратите внимание на (/.*)* вend, который соответствует дополнительному пути после index.php, но может быть опущен, так что URL-адреса без пути также совпадают.

...