落伍者站长论坛's Archiver

Netuser 发表于 2008-7-23 20:26

求助:Apache设置防盗链后,Discuz论坛点击缩略图无法打开!

Windows2003独立服务器,Apache防盗链设置如下:
修改httpd.conf,在对应的虚拟主机配置文件中增加修改如下语句:[code]        SetEnvIfNoCase Referer "^http://www.aaa.com/" local_ref=1
        SetEnvIfNoCase Referer "^http://aaa.com" local_ref=1
        <FilesMatch ".(txt|doc|zip|rar|jpg|gif)">
                Order Allow,Deny
                Allow from env=local_ref
        </FilesMatch>[/code]原本论坛中上传的大张图片,会在贴子里显示缩略图,单击即可弹出新窗口显示大图。按以上方法设置了防盗链后,点击的缩略图都会在新窗口中提示:[code]Forbidden
You don't have permission to access /forum/attachments/month_0807/xxxx.jpg on this server.
[/code]请问各位高手,这该如何解决??

6wei 发表于 2008-7-23 22:04

SetEnvIfNoCase Referer "^[url]http://www.aaa.com/[/url]" local_ref=1
        SetEnvIfNoCase Referer "^[url]http://aaa.com[/url]" local_ref=1

如果你得论坛的域名是 bbs.aaa.com
那么,在这两行的下面加一行
        SetEnvIfNoCase Referer "^[url]http://bbs.aaa.com[/url]" local_ref=1

Netuser 发表于 2008-7-23 22:27

回复 金牌 6wei 的帖子

没看明白?我没有单独为BBS设置二级域名。

6wei 发表于 2008-7-24 00:08

那么,你得论坛是通过 [url]www.aaa.com/bbs[/url]这样来访问的?
试试看把
SetEnvIfNoCase Referer "^[url]http://www.aaa.com/[/url]" local_ref=1
改为
SetEnvIfNoCase Referer "^[url]http://www.aaa.com[/url]" local_ref=1

注意到后面那个 / 了吗?

6wei 发表于 2008-7-24 00:13

也许我说错了,应该是

<FilesMatch ".(txt|doc|zip|rar|jpg|gif)">
改为
<FilesMatch "\.(txt|doc|zip|rar|jpg|gif)">
注意到那个 \ 了吗?
你把这条和刚才提到的那个 /  都改掉

Netuser 发表于 2008-7-24 09:39

谢谢6wei赐教,小弟感激不尽!由于对rewrite一窍不通,不知道您说的这两处反斜杠加与不加有何具体区别?晚上回去修改试验一把,希望能成功。

PS:希望版主能看到,给6wei加点分吧,谢谢他的帮助。

jcyfly 发表于 2008-7-24 09:49

不明白












[img]http://img.china.alibaba.com/club/upload/user/4/3/7/7/437783248467f86b23a809975270c403.gif[/img]
[font=宋体][size=9pt][url=http://www.jinghe17.com] 气相色谱仪[/url] [font=宋体][size=9pt][url=http://www.fbt18.com/]涡街流量计[/url]  [font=宋体][size=9pt][url=http://www.fbt18.com/List_32425.html]超声波物位计[/url][/size][/font][size=9pt][font=宋体, MS Song] [font=宋体][size=9pt][url=http://www.sh-jjc.com/]热电偶校验仪[/url] [font=宋体][size=9pt][url=http://www.sh-jjc.com/wanhenya-SonList-20144]自动压力校验装置[/url] [font=宋体][size=9pt][url=http://www.mjbv.com/product_174.html]球阀[/url][/size]

[/font][/size][/font][/size][/font][/font][/size][/size][/font][/size][/font]

6wei 发表于 2008-7-24 17:43

5楼的 \ 是转义符,是为了让apache认出后面的 “.” 号
4楼的 / 是......一般来说意义不大,就像你访问[url]www.6wei.cc[/url] 和访问 [url]www.6wei.cc/[/url] 一样。但最好还是按照标准的做法,把4楼提到的 / 去掉

Netuser 发表于 2008-7-25 18:09

6wei您好,我按您指点的方法进行了修改,还是报同样的错。我在想是不是因为鼠标点击图片在新窗口浏览时,被防盗链语句视为是直接游览,也就是在盗链,所以屏蔽了?很多网站既可以通过点击图片在新窗口预览大图,如果你转贴盗链他的图片还会出现一个“此图片来自XXX网站”的图片,不知道这是如何实现的呢?

我按您的修改语句格式如下,两处的斜杠我分别试了加与不加,报错现象都是同样的。[code]        SetEnvIfNoCase Referer "^http://www.aaa.com" local_ref=1
        SetEnvIfNoCase Referer "^http://aaa.com" local_ref=1
        <FilesMatch "\.(txt|doc|zip|rar|jpg|gif)">
                Order Allow,Deny
                Allow from env=local_ref
        </FilesMatch>[/code]

6wei 发表于 2008-7-25 22:35

不能吧,我以前也这么做过的

你得域名是什么?论坛通过什么url访问的?
你的代码里的 aaa.com有没有替换成你自己的域名?你访问不到的图片的后缀是什么?是否已经加入到这段代码中?

你这个问题处理到这里就有些奇怪了?

[[i] 本帖最后由 6wei 于 2008-7-25 22:37 编辑 [/i]]

Netuser 发表于 2008-7-27 21:44

[quote]原帖由 [i]6wei[/i] 于 2008-7-25 22:35 发表 [url=http://www.im286.com/redirect.php?goto=findpost&pid=28048213&ptid=2759518][img]http://www.im286.com/images/common/back.gif[/img][/url]
不能吧,我以前也这么做过的
你得域名是什么?论坛通过什么url访问的?
你的代码里的 aaa.com有没有替换成你自己的域名?你访问不到的图片的后缀是什么?是否已经加入到这段代码中?
你这个问题处理到这里就有 ... [/quote]
我的域名是aaa.com这种格式(设置语句肯定要替换成自己的域名),访问不到的图片后缀是jpg,已经加入到代码中。

您的回复让我想到:我的DZ论坛是装在了aaa.com/forum目录下,如此说来莫非要把设置语句里的[url]http://aaa.com[/url]改成[url]http://aaa.com/forum[/url]?

6wei 发表于 2008-7-27 22:29

^[url]http://aaa.com[/url] 表示以 [url]http://aaa.com[/url]开头,所以后面不需要再加 /forum

你这个情况我猜不出来,也许是配置文件里其它配置在作怪。

改天把服务器给我看看吧。

6wei 发表于 2008-7-27 22:31

你看看access log
当论坛打开某个附件中的图片时应该显示403错误,你看看这时候日志里面显示的referer究竟是什么

Netuser 发表于 2008-7-30 00:11

谢谢热心的6wei大哥,我用这个例子的方法实现了:[url]http://www.ismole.net/thread-284-1-1.html[/url]

因为我没有htaccess文件,所以把这个贴子里的语句直接照抄写到httpd.conf文件中去了,解决了需要实现的问题。

美中不足的是该贴最后一个语句的功能,也就是盗链时指向另一张图片的控制没有生效,不知道哪里设置得不对?

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.