从php读取重写(mod_rewrite)文件

时间:2009-05-22 11:13:00

标签: php mod-rewrite readfile

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

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

我正在尝试提取所有设置了“src”属性的脚本标记,检索目标文件的内容,将所有这些标记合并到一个大的javascript文件中,缩小它然后再提供它。 / p>

问题是通过file_get_contents读取所有文件似乎会降低页面速度,所以我正在考虑替代方案,如果我能够以某种方式直接从文件系统读取文件而不必在其中生成其他请求背景,但要做到这一点,我将不得不找到文件的路径,一些是通过已被重写的URL访问。

3 个答案:

答案 0 :(得分:1)

您不能将它包含在原始PHP中,只能包含PHP执行本身的get the results

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

PHP使用apache并在文件系统级别上使用fopen-like或include-like等函数进行文件访问。重写模块不适用于此访问,因为这些函数使用OS文件访问例程但不使用apache。

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

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