0

假设您只有通过 mod_rewrite 规则重写的文件(与应用程序托管在同一台服务器上)的 URL。

在没有直接访问 .htaccess 文件或用于构建原始 URL 的重写规则的情况下,您将如何使用 PHP 读取该文件的内容?

我正在尝试提取所有设置了“src”属性的脚本标签,检索目标文件的内容,将它们全部合并到一个大的 javascript 文件中,将其缩小,然后提供该文件。

问题是通过 file_get_contents 读取所有文件似乎会减慢页面速度,所以我正在寻找替代方案,如果我能够以某种方式直接从文件系统读取文件而不必在后台生成其他请求,但要做到这一点,我必须找出文件的路径,并且有些是通过已重写的 URL 访问的。

4

3 回答 3

1

你不能像原来的 PHP 一样包含它,只能获取PHP 本身的执行结果。

如果你有 fopen 包装器,这就像在重写的 URL 上使用requireincludefile_get_contents一样简单。否则,您可以使用fsockopencurl作为选项来为结果创建 HTTP 请求。

于 2009-05-22T11:29:59.847 回答
0

由于您无法说明如何处理请求,唯一可能的解决方案是将 HTTP 请求发送到该服务器。但这只会让您获得该文件/脚本的输出。

于 2009-05-22T11:25:52.477 回答
0

PHP 位于 apache 之后,并使用 fopen 或 include 等函数在文件系统级别进行文件访问。重写模块不适用于此访问,因为这些函数使用操作系统文件访问例程而不是 apache。

没有办法做到这一点,但是在 php-script 中实现与在 .htaccess 中相同的 URL 重写规则,因为 apache-rewriting 和 php 文件访问彼此一无所知,并且位于完全不同的 web 应用程序层上.

编辑后:唯一的方法 - 在 php 脚本中实施您的重写规则,并在通过 php 解析 URL(而不是重写模块)后使用文件系统 php 访问。

于 2009-05-22T11:38:49.423 回答