如何阻止百度索引 MP3 文件?

如何阻止百度索引 MP3 文件?

使用 Apache,我想阻止人们通过 URL 直接下载音乐。我只想让 Flash Player 播放它。但是百度 MP3 找到了这些文件并正在建立对我的音乐的直接下载。有没有办法用 htaccess 阻止这种情况?

答案1

你基本上有两个选择:

  1. 告诉爬虫不要索引你的 MP3 文件
  2. 防止任何非来自您网站的人直接访问您的 MP3 文件

对于第一个选项,您必须在 Web 主机的根目录下创建一个 robots.txt 文件。它将包含以下内容:

User-agent: *
Disallow: /path/to/mp3s

至于第二个选项,您必须使用 mod_rewrite 并创建一个 .htacess 文件或在您的配置中添加类似的内容:

RewriteEngine On
RewriteBase /
ReWriteCond %{REQUEST_URI} ^/path/to/mp3s/.*
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?example.com/.*$ [NC]
RewriteRule .*\.(mp3)$ - [F,NC]

它将阻止任何不是来自您网站的访问者访问您的 MP3 文件(即没有深度链接)。

我建议您同时使用这两种方法,因为搜索引擎没有索引并不会阻止其他爬虫找到您的文件(忽略 robots.txt),并且重写规则不会阻止爬虫访问您的文件,只有来自搜索页面的访问者才能访问。

答案2

关闭目录列表可能会产生这样的效果:

<Directory /path/to/mp3s>
  Options -Indexes
</Directory>

这样,爬虫程序如果不读取 flash 文件就无法找到 MP3 URL,而它几乎肯定不会这样做。

答案3

假设百度尊重 robots.txt,但百度可能尊重也可能不尊重。其他可疑的搜索代理可能会选择忽略它。

您还可以阻止特定的 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 以使用附加查询字符串(例如“?flashaccess=true”)访问 URL,则让所有对您的 mp3 目录的请求重定向到 PHP 文件(检查该参数),然后让它返回 MP3 文件的内容。

仅返回 htaccess - 您还可以让 Flash 应用程序使用特定用户代理发出请求并阻止/重定向所有其他用户代理。[http://blamcast.net/articles/block-bots-hotlinking-ban-ip-htaccess一个例子]

这并不像听起来那么令人畏惧。

相关内容