问个关于 Url重写的问题
我们网站有个swf load flv影片播放的部分,现在使用:
SetEnvIfNoCase 做反盗连,但是问题是: 在 Firefox 下,Flash Plugin不会发送Referer头,因此,为了照顾Firefox用户,我必须允许 引用页为空 的用户
SetEnvIfNoCase Referer ^$ local_ref=1
但是这样做的缺点是,不能防止下载了。
因此我想通过Url-Rewrite 做到反盗连(单单使用Url-Rewrite识别Cookie成功了,不过setcookie默认的生命周期太长,并不是所说的浏览器进程):
我写的规则如下:
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} ^[^(MSIE)]*MSIE.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://localhost.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://127\.0\.0\.1.*$ [NC]
RewriteRule ^.*$ [F,L]
RewriteCond %{HTTP_USER_AGENT} !^[^(MSIE)]*MSIE.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://localhost.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://1270\.0\.0\.1.*$ [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteRule ^.*$ [F,L]
就是 IE 适用第一条规则,不允许 引用页 为空, 第二条规则适用于 FF,允许引用页为空。
翻过了Apache手册相关章节几遍了,不过它没按我想的工作,FF直接输入URI仍然无法浏览(403),而且,就算引用页正确,仍然无法浏览(403)
手册说: RewriteCond 之间默认是 AND 的啊,为什么情况最终还是重写了
|