Чтение переписанных (mod_rewrite) файлов из php

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

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

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

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

3 ответа

Решение

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

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

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

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

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

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

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