如何建立.htaccess文件?
- 在您的电脑上建立一个新的文本文档,将其直接命名为.htaccess(需要您的电脑设置为显示已知文件的扩展名),然后将该文件通过FTP软件上传到您的空间即可;
- 进入主机控制面板,点击进入“文件管理器”,继续点击进入您需要建立.htaccess文件的目录,在页面下方“文件系统工具”一栏,找到“创建新文件”的输入框,输入.htaccess,然后点击“创建”按钮,即可建立.htaccess文件;
- 您也可以先创建一个htaccess.txt,然后Ftp到服务器,通过FTP来修改文件名
2、如何修改.htaccess?
您可以使用任意文本编辑器对其进行编写。
设置 .htaccess 禁止图片盗链
假设充许连结图片的主机域名为:www.7adesign.com
.htaccess 设置:虽然理论上而言,在Apache中,可以针对每个目录分别设置 .htaccess ,通过权限的继承与覆盖可以实现相当复杂的功能。不过,过多的 .htaccess 往往会增加管理的难度,有时候百密难免有一疏,修改 .htaccess 稍有遗漏便可能造成网站出现问题。
默认情况下禁止其他网站盗链:对图片文件而言,当其他网站使用图片文件盗链时自动重定向至设置的防盗链告示图片,声明版权及宣传您的网站。当然,从降低对服务器带宽占用的角度考虑,这个图片文件不能过大,您也可以简单地拒绝其访问,让其网页上图片位置以红“x”号代替。
允许特定访问来源:单纯针对图片文件来说,事实上也不可能禁止所有除您自身网站之外的其他访问,比如说Google,如果您希望通过Google图片搜索获得一定访问的话,必须让其能够正确读取真正的图片文件,再如应能够让RSS订阅用户看到feed中的图片,这就要求允许来自bloglines等的访问。
允许特定目录下的文件被外部网站使用:完全禁止外部网站有时会带来不便,很多时候,我们自己也可能需要在外部网站使用部分文件。当然,放入这些目录的文件要有一定限制,不然,便失去设置防盗链的意义了。
下面即为图片盗链的 .htaccess 设置部分:
RewriteEngine on RewriteCond %{REQUEST_URI} ^/(img1|img2) RewriteRule ^.*$ – [L]
首先,设置允许可“盗链”即外部网站可以使用的文件所处目录,上面我们设置了两个目录,分别为img1与img2,当然,如果您只有一个目录的话,可以将其改为:
RewriteCond %{REQUEST_URI} ^/img1
接下来判断是否为图片文件:
RewriteCond %{REQUEST_FILENAME} .(gif|jpeg|png)$ [NC]
您也可以根据自己的需要设置更多的文件类型。
RewriteCond %{HTTP_REFERER} !^$
上面这一行意在允许空“HTTP_REFERER”的访问,即允许用户在浏览器地址栏中直接输入图片地址时图片文件的显示。一般而言,这是可选的,不过,建议这么设置,如果强迫必须具有“HTTP_REFERER”才能访问,可能会带来某些问题,比如说在用户通过代理服务器访问时。
RewriteCond %{HTTP_REFERER} !7adesign.com [NC] RewriteCond %{HTTP_REFERER} !google.com [NC] RewriteCond %{HTTP_REFERER} !baidu.com [NC] RewriteCond %{HTTP_REFERER} !bloglines.com [NC] RewriteCond %{HTTP_REFERER} !feedburner.com [NC]
设置允许访问的HTTP来源,包括程英设计、Google、Baidu、Bloglines、Feedburner等。
RewriteRule (.*) /img1/notice.gif [R,NC,L]
将不满足上述条件的访问重定向至notice.gif。您可能已经注意到,notice.gif位于允许“盗链”的目录img1下,这一点很重要,不然,您的警告信息图片将无法在对方网站上显示。
其他类型文件的防盗链设定
如果您的网站上存在其他类似体积较大较耗费带宽的文件如flash、mp3被其他网站盗链,可以同样采取上述策略,比如说,对Flash文件,可用类似如下的设置:
RewriteCond %{REQUEST_URI} ^/img1 RewriteRule ^.*$ – [L]RewriteBase / RewriteCond %{REQUEST_FILENAME} .swf$ [NC] RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !7adesign.com [NC] (……其他允许访问来源) RewriteRule (.*) /img1/notice.swf [R,NC,L]
当然,需要事先创建一个声明版权信息的flash文件“notice.swf”。其他诸如防止mp3文件、压缩文件(zip或rar)盗链的设置与此类似,不再赘述。
使用方法:将上述代码保存为.htaccess 上传到博客根目录。 .htaccess 可能无法直接上传和在WIN系统建立 所以你可以先建立一个普通的TXT文本文件 上传到 FTP空间之后利用FTP 重命名为.htaccess 即可。
*.htaccess 为 linux系统 Apache环境下特有的 因此 一些所谓的全能空间 WIN系统是无法使用本篇介绍的防盗链内容。很遗憾。不过您可以寻找其他基于IIS下的防盗链方式。
利用.htaccess防盗链心得
把以下内容保存为.htaccess文件,放在根目录。
RewriteEngine On RewriteCond %{HTTP_REFERER} !^$ [NC] RewriteCond %{HTTP_REFERER} !7adesign.com [NC] RewriteRule .*\.(jpg|jpeg|gif|png|bmp)$ no.png [L,NC]
注:代码中的7adesign.com请修改成为你网站的域名。notice.png是别人盗链时显示出来的提醒图片,建议把该图片放在与.htaccess文件同一目录下,我在网上看到不少关于.htaccess防盗链的代码,基本是一样的,但最后一行转向图片时:
RewriteRule .*\.(jpg|jpeg|gif|png|bmp)$ [url]http://www.7adesign.com/no.png[/url] [L,NC]
或
RewriteRule .*\.(jpg|jpeg|gif|png|bmp)$ [img]http://www.7adesign.com/no.png[/img] [L,NC]
或
RewriteRule .*\.(jpg|jpeg|gif|png|bmp)$ [url]http://www.7adesign.com/no.png[/url] [L,NC]
但在我的空间上测试的结果是这几种写法在我的空间上是无法显示那个no.phg图片的。但从网上的资料来看,这几种写法也有朋友成功显示no.png,可能是空间系统有差异。
WordPress利用.htaccess防图片盗链
可以使用WordPress插件防盗链Hotlink Protection,或者借助.htaccess来防图片盗链。
图片盗链就是说,其他网站通过链接引用了存储在我的虚拟主机空间里的图片,这样就不用费力上传图片到他自己的空间,又节省了他自己的带宽。因为每次浏览者看到的图片,都链接自我的空间。如果引用数量巨大,必然造成自己的资源浪费和虚拟主机空间效率下降。像GD的空间,如果流量连续暴涨出现异常,可能会导致空间被封;而如果流量超过额定标准,则需要交相当大的一笔费用。
通过打开文本或用EditPlus,填写如下内容:
RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www\.)?7adesign.com(/)?.*$ [NC] RewriteCond %{HTTP_REFERER} !^http://(www\.)?google.com(/)?.*$ [NC] RewriteCond %{HTTP_REFERER} !^http://(www\.)?google.cn(/)?.*$ [NC] RewriteCond %{HTTP_REFERER} !^http://(www\.)?baidu.com(/)?.*$ [NC] RewriteCond %{HTTP_REFERER} !^http://(www\.)?yahoo.com(/)?.*$ [NC] RewriteRule .*\.(gif|jpg|jpeg|bmp)$ http://7adesign.com/ABC.jpe [R,NC]
其实非常简单,第三行中的7adesign.com为自己的网站,最后一行中的http://7adesign.com/ABC.jpe 是当有人盗链自己网站的图片时,出现的一张图片,当然需要制作一张图片上传到自己空间,路径可以自己根据实际修改,要注意图片的格式不能是gif、jpg、jpeg、bmp,因为这四种格式(可以添加其它格式)已经被设置为防盗链了,会打不开,可以设置成jpe或其它格式。 |