用.htaccess防止别人盗链自己的图片和文件
如何防止别人盗链自己的文件呢,也就是说如何防止别人知道自己的服务器中的文件的绝度路径而无偿使用自己的资源呢,比如自己网站下有一个文件1.jpg,那么别人知道这个文件放在你的网站的这个路径中, 那么他就可以在他的网站上利用这个地址而是用你的图片。如何防止这个呢。简单有效的方法,在apache服务器中使用.htaccess文件来限制允许访问相应文件夹的地址。
(以apache服务器安装在本地电脑为例)
首先,为了测试方便,我们打开我们电脑C:\WINDOWS\system32\drivers\etc\hosts这个文件,然后在里面到(因为打开文件的工具不同,可能会看到与图中有些偏差,但是文件中的内容是一样的,不影响操作)
这个红部分,使用过apache服务器的都知道,当我们在浏览器输入localhost之后,浏览器访问的就是我们apache服务器的根目录,现在我们在红部分的下面,给他指定两个新的域名:
我们增加了888和666两个域名,当我们在浏览器输入888或者666的时候,
得到的效果和输入localhost是一样的,相当于三个不同的域名指向了同一个地址,就像谷歌地址一样,输入google和g访问的地方时一样的。这样做只是为了我们测试.htaccess的时候可以看到不同域名访问的结果。
下面就步入正题,我们在apache服务器的根目录下创建两个文件夹,一个是image和images,
Images中的文件:
Image中的文件:
然后在根目录下创建index.html文件,在文件中的代码:
只是一个简单的网页中加入了一个<img src="192.168.0.21/images/1.jpg">图片,从src后面的地址可以看到,我要放入的图片的地址是192.168.0.21/images/1.jpg,其中的192.168.0.21是我的本地的IP地址,也就是说这个ip和localhost的作用是一样的,都是为了连接到服务器的根目录。
正常情况下,运行index.html以后,应该是这个样子:
这样,无论任何人,只要在他的网页上写对了192.168.0.21/images/1.jpg这个地址,那么他都可以使用上面的这个图片显示在他的网页上,那么现在我们要禁止这种情况的发生,所以我们要使用apache服务器的.htaccess文件来限制别人对我的文件夹的访问。
首先,我们需要配置apache的配置文件,使他支持我们使用.htaccess文件,方法:
1.将工作目录下的AllowOverride None 改为AllowOverride All。具体位置为你可以在f下搜索AllowOverride controls what directives may be placed in .htaccess files. 该句下面的那个AllowOverride就是要改的位置。
2.开启.mod_rewrite模块。将#LoadModule rewrite_module modules/mod_rewrite.so前的#去掉即可。
然后就配置好了。
下面我们对刚刚被使用的图片所在的文件夹(images)进行限制。在images文件夹下新建记事本,然后另存为.htaccess文件(只能记事本另存为的时候才能保存为.htaccess文件,否则重命名文件是做不到的):
然后,我们用记事本打开.access文件,在里面写入:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^(www.)?888(/)?.*$ [NC]
RewriteRule .*.(gif|jpg|jpeg|bmp|png)$ 666/image/1.jpg [R,NC,L]
其中888是我们刚刚新建的两个域名之一,写在这里的作用是,888是被本地服务器所允许访问的我们本地被保护文件夹的域名,如果需要添加其他的域名,可以更改888所在的地方,或者,如果需要增加被允许的域名,可以复制RewriteCond %{HTTP_REFERER} !^(www.)?888(/)?.*$ [NC]img文件如何打开然后更改其中888所在的地方,比如我们允许baidu访问我们的文件夹,那么就写成:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。