教程之家 > 办公软件 > Access > 正文

Apache Web服务器htaccess文件配置【2】

2014-03-22 16:13  教程之家  媛媛  
字号:T|T

用.htaccess防止图片、文件盗链

一个图文并茂的网站,最怕的就是文章转贴,虽然现一直在尊重着作权法,但还是有许多人假装没看见?许多人喜欢「复制→贴上」,但这样一个转贴动作却会对一个网站造成莫大的伤害,除了辛苦写的文章被偷走外,连图片也盗链!图片或文件被盗连最怕的就是后续的流量,为了避免这种问题,我们必须自立自强,防止盗链这种可恶的行为!

如果是cPanel虚拟主机,防盗连的方法不外乎就是到cPanel后台进行设定。如果你是其他类型的空间后台或者是说你只有FTP权限的空间,那该怎么办呢?其实只要你的空间支持.htaccess文件并且支持ReWrite,你都可以防止图片与文件的盗链!

通过.htaccess来防止网站的图片、压缩文件、或视频等非Html文件被盗链的方法相当简单,通过在该文件中加入几句命令即可保护我们宝贵的带宽。例如chinaz.com的设置如下:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$ [NC]
RewriteCond %{HTTP_REFERER} !nobing.cn [NC]
RewriteCond %{HTTP_REFERER} !google.com [NC]
RewriteCond %{HTTP_REFERER} !baidu.com [NC]
RewriteCond %{HTTP_REFERER} !www.domain.com [NC]
RewriteRule .*.(gif|jpg)$ http://www.chinaz.com/no.png [R,NC,L]

利用.htaccess来保护主机下的目录与文件

一般来说很多虚拟主机预设是没有开启保护网站主机目录下的文件,其实很危险的,假若你的目录下忘记放置index文件,那很可能您目录就被看光,一个不小心很可能重要资料就被拿走,这是蛮严重的一件事情。如果是Linux主机,我们可以透过简易的.htaccess语法来保护网站主机目录下的文件,让别人无法轻易看见。

平常我们使用的最简单保护目录的方法,莫过于使用「index.php」、「index.html」等等之类的网站index文件,因为主机内预设的设定在目录中预设就是要抓index文件,而index文件通常会有很多种,主机会依续排列下来抓取,所以可以设定index文件来让主机抓取,以达到保护目录的效果。但如果主机需要的index文件没有一个存在,这时候主机就会直接显示目录内的东西了,因为主机不知道要抓取谁当作主要网页,所以会全部显示。

虽然使用index文件来保护目录是可行的,但是每个子目录都需要传一个index文件其实蛮累人的,这时候我们就可以利用「.htaccess」来批量处理。

Options -Indexes

语法的进阶使用

当然该语法还有其他相关的用途,以下列出简单的几项供大家参考使用,如果你觉得以下的语法不是你想要或是想学更多,你可以到Apache官方网站来看看英文说明书,查看看还有什么关于「indexoptions」的用途或是其他不错的功能喔!

Options +Indexes:显示目录下所有文件

Options -Indexes:隐藏目录下所有文件 (上面已经介绍过)

IndexOptions +FancyIndexing:显示目录下所有文件,文件前面包含档案类型的小图示

IndexOptions -FancyIndexing : 显示目录下所有文件,但不包含文件类型的小图示

IndexIgnore *.php *.exe:隐藏特定的文件, 其余文件正常显示(隐藏所有的php和exe文件)

使用.htaccess 创建自定义的出错页面

对于Linux Apache来说这是一项极其简单的事情。使用下面的.htaccess语法你可以轻松的完成这一功能。(把.htaccess放在你的网站根目录下)

ErrorDocument 401 /error/401.PHP

ErrorDocument 403 /error/403.php

ErrorDocument 404 /error/404.php

ErrorDocument 500 /error/500.php

把某些特殊的IP地址的请求重定向到别的站点

ErrorDocument 403http://www.youdomain.com

Order deny,allow

Deny from all

Allow from 124.34.48.165

Allow from 102.54.68.123

把老的域名转像新的域名

# redirect from old domain to new domain

RewriteEngine On

RewriteRule ^(.*) $http://www.yourdomain.com/$1 [R=301,L]

点击加载更多