<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>零号相册 &#187; htaccess</title>
	<atom:link href="http://photozero.net/tag/htaccess/feed/" rel="self" type="application/rss+xml" />
	<link>http://photozero.net</link>
	<description>没事瞎写</description>
	<lastBuildDate>Sun, 22 Aug 2010 06:09:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>用HTACCESS为你的博客设置图片防盗链</title>
		<link>http://photozero.net/htaccess-protect-your-images/</link>
		<comments>http://photozero.net/htaccess-protect-your-images/#comments</comments>
		<pubDate>Sat, 06 Dec 2008 10:32:57 +0000</pubDate>
		<dc:creator>neekey</dc:creator>
				<category><![CDATA[server]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[lamp]]></category>

		<guid isPermaLink="false">http://photozero.net/?p=404</guid>
		<description><![CDATA[自打博客开始建立起就常遇上一些无耻的小偷，盗取我的文章资源并且不给一个Backlink，还直接使用本服务器上的图片，浪费我宝贵的流量，极大地影响了我在Google等搜索引擎中的形象，介于此... ]]></description>
			<content:encoded><![CDATA[<p>自打博客开始建立起就常遇上一些无耻的小偷，盗取我的文章资源并且不给一个Backlink，还直接使用本服务器上的图片，浪费我宝贵的流量，极大地影响了我在Google等搜索引擎中的形象，介于此，终于痛下决心做一个图片防盗链，坚决抵制各无耻小偷。</p>
<p>设置图片防盗链，首先是保护了你的文章的版权，你的文章可能被放在别的网站上，并且没有标明作者，现在只要对图片进行了防盗处理，读者在浏览文章时，图片无法正常显示，他就自然而然到你的网站上浏览。（当然前提是你的这篇文章中有图片）。</p>
<p>再则是节省了服务器资源。现在很多博友都用国外的服务器，不像国内的无限流量（多数也是骗人的），流量极为宝贵。使用防盗链，原本图片可能有200KB（特别是一些把大的图片放在本地博客上的朋友），现在放上一个提示出错的图片只要2KB就够了 <img src='http://photozero.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>鉴于此，无论如何也要设计防盗链来保护你的劳动成果！</p>
<p>好了，现在开始讲讲如何设置防盗链吧。</p>
<h3>第一种方法：服务器设置</h3>
<p>有些主机使用cPanel的管理后台，请<strong>登陆cPanel</strong>-》<strong>Security</strong>-》<strong>Hotlink Protection</strong>-》<strong>Enable</strong>（启用）。在<strong>Urls to Allow Access</strong>处填写允许的网站来源，每行填写一个；<strong>Extensions to allow</strong>处填写需要保护的后缀名，使用半角逗号隔开，如 jpg,gif,png。详情请浏览<a href="http://abiu.cn/2008/04/cpanel-hotlink-protection-161.html">无边无际的文章</a>。</p>
<h3>第二种方法：.HTACCESS文件中设置</h3>
<p>Lamp(Linux+Apache+MySQL+PHP)用户最大的好处在于<a href="http://zh.wikipedia.org/wiki/.htaccess">HTACCESS</a>文件的设置，利用HTACCESS文件，可以最大程度自己定义需要的效果，如这个防盗链。</p>
<p>如果在本地创建 .htaccess 文件可能会遇到无法创建的麻烦，请从网上下载一个 .htaccess 文件或本地创建好文件后使用FTP等软件重命名即可。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline">&lt;IfModule mod_rewrite.c&gt;</li>
<li># 开启Rewrite模块</li>
<li>RewriteEngine On</li>
<li># 定义要保护的文件夹，建议只要保护上传文件夹(/wp-content/uploads/)就可以，主题文件夹之类的就算了</li>
<li>RewriteBase /wp-content/uploads/</li>
<li>&nbsp;</li>
<li>&nbsp;</li>
<li>#允许的URL来源</li>
<li>&nbsp;</li>
<li>#允许空的来源，因为用户可能手动输入图片网址</li>
<li>RewriteCond %{HTTP_REFERER} !^$ [NC]</li>
<li>#允许自己的网站访问啦</li>
<li>RewriteCond %{HTTP_REFERER} !photozero.net [NC]</li>
<li>#允许几个常用的在线阅读器的访问</li>
<li>RewriteCond %{HTTP_REFERER} !zhuaxia.com [NC]</li>
<li>RewriteCond %{HTTP_REFERER} !xianguo.com [NC]</li>
<li>RewriteCond %{HTTP_REFERER} !google.com [NC]</li>
<li>RewriteCond %{HTTP_REFERER} !feedburner.com [NC]</li>
<li>RewriteCond %{HTTP_REFERER} !feedsky.com [NC]</li>
<li>&nbsp;</li>
<li>#括号中的是要保护的文件拓展名，这里只保护了 gif,jpg,png，再加上出错时的图片地址 unavailable.png</li>
<li>RewriteRule .*\.(gif|jpg|png)$ unavailable.png [L]</li>
<li>&lt;/IfModule&gt;</li></ol></div>
<p>把以上代码放到.htaccess文件中（<a href='http://photozero.net/wp-content/uploads/2008/11/htaccess.txt'>下载.htaccess 文件参考</a>），将.htaccess文件上传到/wp-content/uploads/目录，再自己做一张 unavailable.png 图片，同样放到 /wp-content/uploads/ 下即可。</p>
<p>再说明一下，这里的出错后的图片是存放在本地的unavailable.png，这样还有个问题，由于这个效果是不转向直接读取unavailable.png文件后发送到客户端，如果图片被盗链后实际上可能会调用很多次，比如</p>
<p>http://photozero.net/wp-content/uploads/2008/11/123.jpg</p>
<p>http://photozero.net/wp-content/uploads/2008/11/456.jpg</p>
<p>http://photozero.net/wp-content/uploads/2008/11/789.jpg</p>
<p>&#8230;<br />
这样做还是需要重新下载N次unavailable.png图片（尽管每张图片才2KB）。</p>
<p>另外一种方法是出错后转跳到指定的一张图片，如 http://example.com/unavailable.png ，出错后统一转跳到这里，实际上浏览器会缓存这张图片，也就是说只要下载1次就够了，这样做更节约流量！</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline">#把上面的RewriteRule ... 这一句替换成</li>
<li>RewriteRule .*\.(gif|jpg|png)$ http://example.com/unavailable.png [R,NC,L]</li></ol></div>
<p>这种效果在遇到盗链时，用301/302转向到http://example.com/unavailable.png而不是上面的直接读取unavailable.png文件。在使用这种方法时要注意，<strong>不要把http://example.com/unavailable.png放在上面的防盗链保护的范围之内！</strong>否则会引起循环重定向，重则导致浏览器崩溃！（建议把图片放在根目录或者放在<a href="http://photozero.net/album_recommended/">网络相册</a>之类的）</p>
<p>OK，说完了，自己要不要试一试？效果参见本站 <img src='http://photozero.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  <a href='http://photozero.net/wp-content/uploads/2008/11/htaccess.txt'>下载.htaccess 文件参考</a>，本站错误图片显示</p>
<p><img src="http://photozero.net/wp-content/uploads/unavailable.png" alt="" /></p>
<p>http://photozero.net/wp-content/uploads/unavailable.png</p>
<p>*本人对HTACCESS的了解属于外行，如果错误，欢迎指正，也望高手莫笑。</p>
]]></content:encoded>
			<wfw:commentRss>http://photozero.net/htaccess-protect-your-images/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>

