使用Apache我想阻止人们通过url直接下载音乐。 我只是想让Flash播放器播放它。 然而,百度MP3find了这些文件,并正在build立直接下载到我的音乐。 有没有办法,我可以防止这与htaccess?
你基本上有两个select:
对于第一个选项,您必须在您的虚拟主机的根目录下创build一个robots.txt文件。 它将包括如下内容:
User-agent: * Disallow: /path/to/mp3s
至于第二个选项,你必须使用mod_rewrite,并创build一个.htacess文件或添加类似的东西到你的configuration:
RewriteEngine On RewriteBase / ReWriteCond %{REQUEST_URI} ^/path/to/mp3s/.* RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(.+\.)?example.com/.*$ [NC] RewriteRule .*\.(mp3)$ - [F,NC]
这将防止任何来自您的网站的访问者访问您的MP3文件(即没有深度链接)。
我build议您同时使用这两种方法,因为从search引擎的索引不会阻止其他抓取工具find您的文件(忽略robots.txt),重写规则不会阻止抓取工具访问您的文件,只有来自search页面的访问者。
closures目录列表可能会做到这一点:
<Directory /path/to/mp3s> Options -Indexes </Directory>
这样一来,抓取工具就不能在没有读取Flash文件的情况下findMP3url,这几乎可以肯定是不行的。
这假设百度尊重robots.txt,它可能会或可能不会。 其他可疑的search代理可能会select忽略它。
你也可以阻止特定的IP地址(或范围),如果你有特定的话
order allow,deny deny from 127.0.0.1 deny from 127.0.0.2 deny from 127.0.0.3 allow from all
==你的问题的范围之外:
你说你有一个FlashPlayer,正在播放音乐。 如果您可以修改Flash Player以使用其他查询string访问URL(例如“?flashaccess = true”),那么将所有对您的mp3目录的请求redirect到一个PHP文件(检查该参数),然后让它返回MP3文件的内容。
仅返回到htaccess – 您也可以让Flash应用程序使用特定的useragent进行请求,并阻止/redirect所有其他应用程序。 [ http://blamcast.net/articles/block-bots-hotlinking-ban-ip-htaccess示例%5D
听起来并不令人望而生畏。