apache — разбирать SSI и PHP в конкретном файле .php

Я ищу способ синтаксического анализа как SSI (который обычно находится в файлах .shtml), так и PHP в одном из моих файлов PHP.

В .htaccessЯ использую это, чтобы добавить синтаксический анализ SSI в мой файл PHP, но когда я это делаю, PHP перестает работать и ведет себя как HTML-комментарии только с анализом SSI, как и ожидалось.

<Files phpfile.php>
AddHandler server-parsed .php
</Files>

Как я могу добавить оба метода анализа в этот файл?

РЕДАКТИРОВАТЬ: Есть другие вопросы здесь об обратном (PHP в .shtml файлы), но, во-первых, это решение не сработало для меня, а во-вторых, я бы предпочел, чтобы оно было наоборот.

Я использую Apache 2.4 с CloudLinux, Litespeed и cPanel.

2

Решение

Это зависит от порядка, в котором вы хотите выполнить это.

Если вы намереваетесь проанализировать файл для директив SSI, а затем интерпретировать его как PHP, это невозможно, поскольку PHP работает на уровне файловой системы.

Если вы намереваетесь проанализировать выходные данные процесса PHP для директив SSI, есть несколько способов сделать это. Связанный вопрос является одним из них, есть также этот ответ, который может быть что-то, что будет работать для вас.

Первый работает, потому что Apache способен принимать выходные данные PHP, анализировать их на наличие SSI-директив, удовлетворять этим директивам и затем выводить их клиенту. Однако сделать обратное невозможно. Также обратите внимание, что никакие файлы, включенные в результате включений SSI, не будут проанализированы в первую очередь для PHP. Только первоначальный запрос.

Возможно, более важным будет точно определить, какую проблему вы пытаетесь решить здесь. Что поставило вас в нужное место? И можно ли было бы решить эту проблему с помощью строго PHP или SSI.

PHP имеет ряд встроенных функций для выполнения аналогичных задач, include а также require, Он также имеет virtual команда, который выполнит подзапрос Apache. Этот подзапрос будет обработан при настройке Apache и при вызове файла в virtual это файл SHTML, он будет проанализирован для директив SSI.

Важно отметить, однако, что virtual Команда сбросит все данные на клиенте до включения файла, и результат включения будет отправлен непосредственно клиенту (PHP не будет иметь доступа к выводу команды, а файл SHTML не будет иметь доступа к каким-либо файлам). Данные PHP [или наоборот]).

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]