HTML5 を介して MP3 ファイルにアクセスしているときに、Firefox が HTTP ヘッダーでリファラーを送信しないという問題があります。
私は jPlayer.org のプレーヤーを使用して mp3 ファイルを再生しています。HTTP スニファー/FireBug/similar から URL を読み取って、人々が曲をダウンロードできないようにしています。これに対する私のアプローチは、.htaccess ファイルの HTTP ヘッダーをチェックすることです。
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mydomain.com/.*$ [NC]
RewriteRule ^play/(\S+)$ /uploads/error.mp3
RewriteRule ^play/(\S+)$ /uploads/mp3/$1.mp3
これらの 3 行は、HTTP リファラーが mydomain.com で何かに設定されていない場合、ブラウザーに error.mp3 を再生するように指示します。それ以外の場合は、実際の mp3 ファイルを取得します。
これは、Chrome、Internet Explorer 7/8/9、Safari(PC)、および Opera で正常に動作します。ただし、Firefox (PC と Mac の両方) と Safari (Mac) では機能しません。これは、HTTP リファラーがまったく送信されていないためと思われます。FireBug を見ると、Request-headers のどこにも Referer が見当たらないので、まったく送信されていないと思いますか? Web 開発者ツールの [ネットワーク] タブを見ると、Chrome で確認できます。
他の誰かがこの問題に精通していますか? MP3 ファイルのダウンロードを防止する方法、または少なくともダウンロードを困難にする方法を教えてください。一時停止/再開が機能しないため、PHP を介して MP3 ファイルを渡すことは機能しないようです。