Apache2, FastCGI, PHP5 и URL-адреса без суфикса .php

Мне нужно настроить свой сервер 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? Любые идеи?

Если у вас есть вопросы по Joomla, отправляйте их на Joomla Stack Exchange.

mickmackusa 01.11.2018 12:06
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
1
89
1

Ответы 1

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

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

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

К сожалению, это не работает. Я не знаю, почему, но с такой конфигурацией FileMatch не покрывает даже базовые URL-адреса (например, site.pl/index.php).

Jakub Królikowski 10.05.2018 16:07

Можете ли вы попробовать еще раз с добавленным * в конце?

david 10.05.2018 16:10

Другие вопросы по теме