怎样实现图片防盗链和图片转向

2010年9月4日 由 Amon 没有评论 »

图片防盗链有什么用呢?它能防止其它网站盗用你的图片,浪费你宝贵的流量。

图片转向有什么用呢?如果你的网站以图片为主,哪天发现月底没到流量就快用光了,那就可以利用图片转向,在不修改网页的前提下,把图片下载请求转向到其它空间(比如试用主机),临时过渡。

下面开始讲解,比如你的图片都在img目录下,那就在该目录下放一个名为 .htaccess 的文件,内容如下:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$ [NC]
RewriteCond %{HTTP_REFERER} !amon.org [NC]
RewriteCond %{HTTP_REFERER} !google.com [NC]
RewriteCond %{HTTP_REFERER} !baidu.com [NC]
RewriteRule .(jpg|gif|png|bmp|swf|jpeg) /image/replace.gif [R,NC,L]
RewriteRule ^(.*)$ http://image.amon.org/image/$1 [L]

其中RewriteCond部分是判断是否盗链:

  • 如果以上条件都成立(即访问图片的请求,既不是直接输入网址,也不是来自amon.org,也不是来自google.com,也不是来自baidu.com的话),就执行RewriteRule转向,让所有盗链 img 目录下 jpg、gif、png、bmp、swf、jpeg 文件的网页,显示的图片都用 image 目录下的 replace.gif 图片替换掉。注意:替换显示的图片不要放在设置防盗链的 img 目录下。
  • 如果照上面的规则判断出图片请求不是盗链的,就执行RewriteRule转向,让对 img 目录下所有的请求都转向到目标服务器。比如有个图片原来的 url 是 http://amon.org/img/girl.jpg ,现在就会转到 http://image.amon.org/image/girl.jpg 去。当然你得先把原服务器 img 目录下的文件统统拷贝到临时服务器的 image 目录下,转向才会真正可用。起到的效果就是把原服务器图片下载所占用的流量统统省下,让临时服务器来承受。

相信很多朋友都曾遇到过网站内文件特别是图片被盗链的情况。所谓盗链,是指对方网站直接链接您网站上的文件,而不是将其置于自己的服务器上,一般而言,盗链的对象大多为较耗带宽的大体积文件,如图片、视频等,从某种意义上说,这事实上造成了让您为其访问流量买单:不仅您的服务器带宽被无任何回报地占用,而且,往往会在很大程序上影响您网站的访问速度。

防止文件盗链目标与要求

1. 统一在网站根目录下的 .htaccess 设置:虽然理论上而言,在Apache中,可以针对每个目录分别设置 .htaccess ,通过权限的继承与覆盖可以实现相当复杂的功能。不过,过多的 .htaccess 往往会增加管理的难度,有时候百密难免有一疏,修改 .htaccess 稍有遗漏便可能造成网站出现问题。

2. 默认情况下禁止其他网站盗链:对图片文件而言,当其他网站使用 盗链时自动重定向至类似右图所示的图片,声明版权及宣传您的网站。当然,从降低对服务器带宽占用的角度考虑,这个图片文件不能过大,您也可以简单地拒绝其访问,让其网页上图片位置以红“x”号代替。

3. 允许特定访问来源:单纯针对图片文件来说,事实上也不可能禁止所有除您自身网站之外的其他访问,比如说Google,如果您希望通过Google图片搜索获得一定访问的话,必须让其能够正确读取真正的图片文件,再如应能够让RSS订阅用户看到feed中的图片,这就要求允许来自bloglines等的访问。

4. 允许特定目录下的文件被外部网站使用:完全禁止外部网站有时会带来不便,很多时候,我们自己也可能需要在外部网站使用部分文件。当然,放入这些目录的文件要有一定限制,不然,便失去设置防盗链的意义了。

设置 .htaccess 禁止图片盗链

.htaccess 设置部分:

RewriteEngine on
RewriteCond %{REQUEST_URI} ^/(allow1|allow2)
RewriteRule ^.*$ - [L]

首先,设置允许可“盗链”即外部网站可以使用的文件所处目录,上面我们设置了两个目录,分别为allow1与allow2,当然,如果您只有一个目录的话,可以将其改为:

RewriteCond %{REQUEST_URI} ^/allow1

接下来判断是否为图片文件:

RewriteCond %{REQUEST_FILENAME} \.(gif|jpeg|png)$ [NC]

您也可以根据自己的需要设置更多的文件类型。

RewriteCond %{HTTP_REFERER} !^$

上面这一行意在允许空“HTTP_REFERER”的访问,即允许用户在浏览器地址栏中直接输入图片地址时图片文件的显示。一般而言,这是可选的,不过,建议这么设置,如果强迫必须具有“HTTP_REFERER”才能访问,可能会带来某些问题,比如说在用户通过代理服务器访问时。

RewriteCond %{HTTP_REFERER} !luc\.cn [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来源,包括Luc.cn自身、Google、Baidu、Bloglines、Feedburner等。

RewriteRule (.*) /allow1/leech.gif [R,NC,L]

将不满足上述条件的访问重定向至leech.gif。您可能已经注意到,leech.gif位于允许“盗链”的目录allow1下,这一点很重要,不然,您的警告信息图片将无法在对方网站上显示。

如此,即实现了我们预先设定的防止图片盗链目标。

其他类型文件的防盗链设定

如果您的网站上存在其他类似体积较大较耗费带宽的文件如flash、mp3被其他网站盗链,可以同样采取上述策略,比如说,对Flash文件,可用类似如下的设置:

RewriteCond %{REQUEST_URI} ^/allow1
RewriteRule ^.*$ - [L]DE<DE<RewriteBase /
RewriteCond %{REQUEST_FILENAME} \.swf$ [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !luc\.cn [NC]
(……其他允许访问来源)
RewriteRule (.*) /allow1/leech.swf [R,NC,L]

当然,需要事先创建一个声明版权信息的flash文件“leech.swf”。其他诸如防止mp3文件、压缩文件(zip或rar)盗链的设置与此类似,不再赘述。

便捷更新汉化.PO文件

2010年9月4日 由 Amon 没有评论 »

本文讲述怎样以原汉化.PO文件为基础更新.PO文件。最低降低程序翻译人员与时俱进更新语言包的负担。

现在开源程序中普遍通过分离语言文件 ,然后通过 gettext 软件包来实现国际化发展。在程序源代码中表现为.PO文件和.MO文件。

  • PO文件是GNU gettext项目的一套应用规范,属于L10n方案。PO是Portable Object(可移植对象)的缩写形式;.PO文件是面向翻译人员的、提取于源代码的一种资源文件。当软件升级的时候,通过使用 gettext 软件包处理 .PO 文件,可以在一定程度上使翻译成果得以继承,减轻翻译人员的负担。
  • MO是Machine Object(机器对象) 的缩写形式;.MO 文件是面向计算机的、由.PO 文件通过 gettext 软件包编译而成的二进制文件。程序通过读取 .MO 文件使自身的界面转换成用户使用的语言。
  • poEdit软件能编辑.PO文件,并可以编译生成.MO文件。
  • I18N 是 internationalization 的缩写形式,意即在 i 和 n 之间有 18 个字母,本意是指软件的“国际化”。L10N 是 localization 的缩写形式,意即在 l 和 n 之间有 10 个字母,本意是指软件的“本地化”。
  • I18N 主要使用 gettext 软件包使软件实现国际化支持。
  • GNU gettext 是一个软件包,是为了使软件实现国际化支持而产生的。

» 阅读更多: 便捷更新汉化.PO文件

米农常去域名相关网址收集

2010年9月4日 由 Amon 没有评论 »

中文域名论坛

国外域名论坛

国内域名注册服务商

域名抢注网站

域名删除信息查询

域名历史做站查询

国外域名停放服务商

国内域名停放服务商

中文域名资讯

Groupon是怎样将团购创新做强做大

2010年9月4日 由 Amon 没有评论 »

Groupon发展历程(funding)

目前一共收到1.73亿美金的投资,首先是07年由Eric Lefkofsky和Brad Keywell投入的$1M,然后是08年由New Enterprise Associates投入$6.8M的A轮。09年的B轮就到了$30M(Accel Partners加入),最近完成的C轮又加入了DST,金额达到$135M,最后这一轮下来的现Groupon整体估值大约在13.5亿美金左右。从融 资的速度、注资人和金额是很能看出一个公司情况的,Groupon就是个好例子。

Groupon的成功秘诀(Why Groupon?)

  • 要想了解Groupon为什么能成功,除了围观其目前现状外,另一点很重要的是分析其历史发展轨迹 – Groupon前身来源自2007年创立的ThePoint网站(thepoint.com),目的是组织群体行为,其实团购是ThePoint的一个子集;
  • 从创始人口中说出的一些成长驱动点包括:
    • 从最开始的运营中就非常注重每次推出的deal质量,原话是”extremely high standards”。公司有一队专门的研究师和分析人员来深刻挖掘用户喜好,确保只有深受大众用户喜爱的deal才能上线;之前有一条被很多人忽视的新 闻是Groupon挖来了曾任职于Netflix(也是个出名对数据重视的公司)的Mark Johnson做首席数据官(Chief Data Officer);
    • 另外一点对于公司快速成长有很大帮助的事情是Groupon对于客户服务的高度重视,因为自己本质其实是一间服务型公司,满意的客户再加上各种精心设计的社会媒体传播的放大效应。也行这样的DNA才是为什么其他团购网站(之前的或者现在跟风的)无法达到其高度的原因?

» 阅读更多: Groupon是怎样将团购创新做强做大

域名案例:Groupon.com以25万美元成交

2010年9月4日 由 Amon 没有评论 »

Groupon是全球最大的“每天一卖”(deal-of-the-day)模式的商业网站。Groupon引领了当前的团购经济大潮,团购网站不仅在中国而且在全球遍地开花。

Groupon所拥有的域名品牌:Groupon.com,已经在互联网行业耳熟能详。其实,这个域名网址早在2002年便已经注册,并不属于Groupon所有,那个时候Groupon这个商业模式以及品牌还没有跳进的Groupon之父安德鲁-梅森(Andrew Mason)的脑袋。那么groupon.com是如何被Andrew所获得的呢?不是捡的注册价,不是被人送的,而是花大价钱买的,而且是一波三折斗智斗勇从域名原持有人手里花大价钱买来的。

我们先从Andrew在前Groupon时代的经历说起,这有助于我们理解Groupon品牌的诞生。Andrew最初创建了The point网站,口号是“促成某事”(Make Something Happen),属于团体行动(collective action)类网站。具体说来就是:不同的人们为了某个共同的目标而发起一个活动,大家一方面承诺出钱,另一方面也开出条件。条件匹配之后就一起行动。但这个看起来很美好的网站并没有取得多大成功。另外一个网站Woot.com才是真正的团购鼻祖。Woot由电子批发商Matt Rutledge于 2004年建立,有人分析其最初的想法来自测试市场对新产品的反应,所以,每天只卖一种产品。而Andrew借鉴了Woot的思想,于是开始了他第二个项目Groupon。
» 阅读更多: 域名案例:Groupon.com以25万美元成交