.htaccess 防盗链 URL重写 ReWrite 目录访问权限

.htaccess 可以做很多事!

一、防盗链

用 http 协议的 referer 字段,判断对文件请求是否来自相同的域名,如果是,可以正常访问,否则,跳转到其他 url。先来看一小段代码:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://(.)+\.leakon\.com.* [NC]
RewriteRule .*\.(jpg|gif|bmp)$ http://www\.leakon\.com [L,NC]

他的作用是,当请求以 jpg、gif 或 bmp 为扩展名的文件,但 referer 字段不能匹配 http://*.leakon.com* 这个表达式时,服务器返回 302 状态码,重定向到 http://www.leakon.com。

这段代码用于图片站的图片防盗链是能够起到很大作用的,但不太适用于下载站。因为用户如果使用迅雷等专用软件下载文件,下载软件在发送请求的时候,会自动把目标文件所在的域名和路径作为 referer 加到请求里一起发给服务器。除非你能保证用户浏览网站页面的路径和文件所处的下载路径有很大区别,并且精心设计过上面的判断条件,否则,还是找其他办法来做到防盗链吧。

对使用 Windows 的 IIS 服务器的朋友, 如果你想给自己的网站加上防盗链功能,我向你推荐一款功能十分强大的防盗链软件:防盗链专家 ,这是我的一个好朋友开发的,现在已经稳定地运行在几万台 IIS 服务器上,而且很多下载站用的都是这套系统。

二、目录访问权限

有的时候,我们的程序需要读取一些配置文件,配置文件里可能包含一些重要的系统文件的路径,甚至是密码等信息。出于某些条件的限制,这些路径和文件又不能隐藏在 htdocs 目录的下面,都暴露给外网了。

怎样才能保护这些文件,避免被别人浏览到呢?

.htaccess 可以帮你做到。

这个功能使用起来非常简单,只需在你想保护的目录下面放置这个 .htaccess 文件,并添加一行代码即可:

deny all

这时所有对这个目录,以及这个目录的所有子目录的文件的请求都会被拒绝!

Leave a Reply

Your email address will not be published.

*