返回列表 回复 发帖

难道apache的防盗链无法应用于firefox,还是flv文件的问题

难道apache的防盗链无法应用于firefox?这样一个新问题摆在我的面前。
问题奇怪的是mp3,图片,flash等文件就能通过配置apache的防盗链而保证只有许可的来源能正常访问。
可为什么单单就flv 类型的文件,不行呢? 甚至是许可的来源也被无情的禁止了。(注意此问题只存在于firefox,IE显示正常)
问题地址:http://bbs.cnnas.com/www/html/58/t-1158.html 可以看出对flv文件的防盗链启用后,允许访问的来源也被阻止了。

一般防盗链的配置无非就是以下几种,不知道有没有高人能解释问题出在什么地方:
  1.    1. SetEnvIfNoCase Referer "^http://bbs.cnnas.com" local_ref=1
  2.    2. SetEnvIfNoCase Referer "^http://cnnas.com" local_ref=1
  3.    3. <filesmatch "\.(txt|doc|mp3|zip|rar|jpg|gif|flv|swf)">
  4.    4. Order Allow,Deny
  5.    5. Allow from env=local_ref
  6.    6. </filesmatch>
复制代码
还一种写法,是用正则的,这种写法在各个版本的apache比较通用。
写法是:
  1.    1. SetEnvIfNoCase Referer "^http://.*\.cnnas\.com" local_ref=1
  2.    2. SetEnvIfNoCase Referer ".*\.cnnas\.com" local_ref=1
  3.    3. <filesmatch "\.(txt|doc|mp3|zip|rar|jpg|gif|flv|swf)">
  4.    4. Order Allow,Deny
  5.    5. Allow from env=local_ref
  6.    6. </filesmatch>
复制代码
[ 本帖最后由 visu 于 2007-11-8 16:22 编辑 ]
另一种则是靠apache的rewrite mod:
  1. RewriteEngine on
  2. RewriteCond %{HTTP_REFERER} !^http://.*\.cnnas\.com/.*$ [NC]
  3. RewriteCond %{HTTP_REFERER} !^.*\.cnnas\.com/.*$ [NC]
  4. RewriteCond %{HTTP_USER_AGENT} !^NSPlayer.*
  5. RewriteCond %{HTTP_USER_AGENT} !^Windows.*
  6. RewriteRule \.(mp3|wmv|wma|swf|jpg|flv)$ http://bbs.cnnas.com/logo7.jpg [R=301,L]
复制代码
[ 本帖最后由 visu 于 2007-11-8 16:12 编辑 ]
返回列表