非PHP文件的自动预结束文件?
我用另一种方式问这个问题。现在问题已经清楚了,我将在下面的表格中添加它: 要为二进制文件(mp3)运行自动预结束文件脚本(或其他等效脚本) 如果我尝试使用Addhandler将mp3当作php处理,将会得到各种各样的错误,因为php将尝试解析mp3文件 是否有一些等效的方法来运行二进制文件的自动预结束文件非PHP文件的自动预结束文件?,php,.htaccess,Php,.htaccess,我用另一种方式问这个问题。现在问题已经清楚了,我将在下面的表格中添加它: 要为二进制文件(mp3)运行自动预结束文件脚本(或其他等效脚本) 如果我尝试使用Addhandler将mp3当作php处理,将会得到各种各样的错误,因为php将尝试解析mp3文件 是否有一些等效的方法来运行二进制文件的自动预结束文件 (我不能使用mod_rewrite)如果您可以使用.htaccess,您可以简单地为任何类型的请求强制使用前置文件: php_value auto_prepend_file "prepend.
(我不能使用mod_rewrite)如果您可以使用
.htaccess
,您可以简单地为任何类型的请求强制使用前置文件:
php_value auto_prepend_file "prepend.php"
然后在prepend.php
中检查请求的内容,或者做些什么(例如,如果是mp3),或者不做(对于任何其他类型的文件)
更新:
好的,对于非PHP文件,它不会自动工作,但您可以执行以下技巧(尽管它不是很好的解决方案):
在.hatcess
中,强制将您的mp3
文件视为PHP
:
AddHandler php5-script .mp3
php_value auto_prepend_file "prepend.php"
然后在prepend.php
中:
// your custom logic here...
header(/* your headers here */);
readfile($_SERVER['SCRIPT_FILENAME']); // serve the requested file
exit(0);
这样它就可以工作了(用PNG文件测试)yes。但是我需要运行prepend.php,即使http请求是针对非php的,比如mp3thank,但需要在不使用readfile的情况下运行。人们需要直接联系。如果我自己发球,就会收到各种各样的抱怨。我尝试了所有“正确标题”的组合,但仍然收到投诉。唯一有效的方法是如果有一个直接链接,那么请检查您直接下载时得到的标题,然后使用PHP执行相同的操作-如果您选择标题1:1您直接下载的标题-应该没有区别。“我不能使用mod_rewrite”-这是一个遗憾,这将是您问题的明显解决方案。你能解释一下,你的前置文件是做什么的吗?也许还有第三条路。