Чтение переписанных (mod_rewrite) файлов из php - PullRequest
0 голосов
/ 22 мая 2009

Предполагается, что у вас есть только URL-адрес файла (размещенного на том же сервере, что и приложение), который был переписан с помощью правил mod_rewrite.

Как бы вы прочитали содержимое этого файла с помощью PHP, не имея прямого доступа к файлу .htaccess или правилам перезаписи, использованным для создания исходного URL?

Я пытаюсь извлечь все теги сценария с установленным атрибутом "src", извлечь содержимое целевого файла, объединить их все в один большой файл javascript, свернуть его и затем использовать вместо него.

Проблема в том, что чтение всех файлов через file_get_contents, кажется, замедляет работу страницы, поэтому я искал альтернативные варианты, и если бы я мог каким-то образом прочитать файлы непосредственно из файловой системы, не генерируя другие запросы фон, но для этого мне нужно будет найти путь к файлам, и некоторые из них доступны через URL, которые были переписаны.

Ответы [ 3 ]

1 голос
/ 22 мая 2009

Вы не можете включить его, как если бы он был исходным PHP, только получить результаты самого выполнения PHP.

Если у вас есть fopen-оболочки, это так же просто, как использовать require , include или file_get_contents в переписанном URL. В противном случае у вас есть fsockopen и curl в качестве параметров для создания HTTP-запроса на результат.

0 голосов
/ 22 мая 2009

PHP отстает от Apache и имеет доступ к файлам на уровне файловой системы, используя функции типа fopen или include-like и т. Д. Модуль перезаписи не будет работать для этого доступа, потому что эти функции используют процедуры доступа к файлам ОС, но не Apache.

Нет способа сделать это, но реализовать в php-скрипте те же правила перезаписи URL, что и в .htaccess, потому что apache-переписывание и доступ к php-файлу ничего не знают друг о друге и находятся на совершенно разных уровнях веб-приложение.

ПОСЛЕ РЕДАКТИРОВАНИЯ: Единственный способ - реализовать ваши правила перезаписи в php-скрипте и использовать php-доступ к файловой системе после анализа URL-адресов через php (не модуль перезаписи).

0 голосов
/ 22 мая 2009

Поскольку вы не можете сказать, как будет обрабатываться запрос, единственно возможное решение - отправить HTTP-запрос на этот сервер. Но это только даст вам вывод этого файла / скрипта.

...