2

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 を使用できません)

質問は要約すると、mid スクリプトで php の解析をキャンセルする方法はありますか。処理後、mp3 がそのまま渡されるようにするにはどうすればよいですか?

4

1 に答える 1

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);
?>
于 2013-02-08T08:55:41.810 に答える