我正在尝试使用htaccess中的这一行解析mp3文件作为php:
AddHandler application/x-httpd-php5 .mp3 .MP3
目的是运行auto_prepend_file
一切正常。但是在运行auto_prepend_file之后,服务器输出mp3并运行错误,例如:
Warning: Unexpected character in input: '' (ASCII=23) state=0 i
似乎它正在将mp3文件解析为php。无论如何只是告诉服务器将mp3文件视为php,这样我就可以使用auto_prepend_file指令然后取消php处理
(我不能使用mod_rewrite)
问题归结为:有没有办法在中间脚本中取消php解析。所以在处理之后,mp3才能通过?
答案 0 :(得分:1)
我会这样尝试:使用mod_rewrite代替运行php脚本。
RewriteRule (\w+\.mp3)$ phpscript.php?file=$1
在此脚本中,预先添加所需内容,然后读取给定文件并输出。
<?php
$file = $_GET['file'];
include("prependfile.php");
header('Content-Type: audio/mpeg3');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Content-Length: ' . filesize($file));
readfile($file);
?>