php - 使用 htaccess 和 php 的 mp3 带宽限制

标签 php .htaccess bandwidth-throttling

我正在被试图关闭我的网站的机器人和恶意用户摧毁。

我尝试通过 mod_rewriting 所有对 mp3 文件的请求到一个 php 脚本来制作带宽限制器,该脚本将跟踪每个 ip 并限制每个 ip 每小时可以下载的数量。这工作正常,但它给一些用户带来了很多问题,因为这些链接不是指向 mp3 文件的直接链接。

我尝试了各种强制下载 header ,但对某些用户有效的方法对其他用户无效。

现在的问题是,是否可以保留指向 mp3 文件的直接链接,并且每当有人单击 mp3 文件时同时运行允许或拒绝请求的跟踪 php 脚本?

谢谢!

(服务器没有 mod_bandwidth 或任何其他有用的 mod)

最佳答案

与其在用户点击链接时同时跟踪使用情况,不如将登陆页面制作成一个 PHP 脚本来检查用户的 ip,并根据它输出链接或隐藏它们? 如果您的文件存储在一个明显的文件夹中,例如 你的网站/音乐/艺术家/song.mp3 您可以为它们创建软链接(soft link),这样它会混淆路径。 在 linux 服务器上,您可以使用 symlink() php 函数创建到/music 目录的软链接(soft link),并将路径输出为 yoursite/3awE2afeefef4a323/artist/song.mp3,它仍然应该是文件的直接链接,例如:

<?php
$target = 'music/';
$link = 'a322ewrr323211';
symlink($target, $link);
?>
<html>
<body>
     <a href="a322ewrr323211/artist/song.mp3">link</a>
</body>
</html>

然后每晚或创建 24 小时后定期删除这些符号链接(symbolic link)。

关于php - 使用 htaccess 和 php 的 mp3 带宽限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13910010/

相关文章:

php - 非常简单的 RewriteRule 不起作用

java - JMS 消息大小

javascript - 有什么方法可以限制对 Chrome DevTools 中特定 API 的调用,同时让其他 API 不受限制?

php - 无法理解如何将数组发送到 mySQL 数据表

php - Laravel,获取 BroadcastOn() 的用户 ID

html - 如何使用 htaccess 强制使用 http- 而不是 https

php - wordpress - 如何 noindex 插件文件夹,但不阻止它们

macos - NSURLSession 带宽限制

php - 将 php 中的类别名称存储在 mysql 表中的最佳方法

PHP imagettftext 部分加粗