存档在 2009年5月

使用.htaccess实现图片防盗链

分类: 傲文原创, 网站建设 没有评论 »

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

默认情况想禁止其它网站盗链,对图片而言,当其他网站使用<img src=”http://yourdomain.com/someimg”>盗链时,会自动重定向,当然,从降低对服务器带宽占用的角度考虑,你可以简单地拒绝其访问,让其网页上图片位置以红”X”号代替。

允许特定访问来源:单纯针对图片来说,我们也不可能禁止所有除你自己网站之外的其他访问,比如说Google,如果你希望通过Google图片搜索获得一定的访问的话,必须让其能够正确读取真正的图片,再如应能够让RSS订阅用户看feed中的图片。

运行特定目录下的文件被外部网站使用:完全禁止外部网站有时会带来不便,很大时候,我们自己也可能需要在外部网站使用部分文件,当然,放入这些目录的文件要有一定的限制,不然,便失去设置防盗链的意义了。
设置.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} !google.com [NC]
RewriteCond %{HTTP_REFERER} !bloglines.com [NC]
RewriteCond %{HTTP_REFERER} !feedburner.com [NC]

阅读全文…»

收藏与分享

实用的WordPress数据库技巧

分类: 文章转载, 网站建设 没有评论 »

1 备份数据库
问题:尽管本文中所有的技巧都经过测试,但是在尝试前请务必首先备份MySQL数据库。

解决方法:手动备份数据库,请按以下步骤操作:

登陆phpMyAdmin,选中要备份的数据库。
点击水平菜单上的“导出”按钮。
选择压缩方法(我本人使用gzip),然后单击“执行”。
服务器接着会询问你是否下载备份,点击“是”,然后把它存储到硬盘。
注解:使用WP-DB-Backup插件执行数据库备份非常方便。WordPress用户可以安装这个插件并定期备份数据。

2 批量删除日志修订本
问题:日志修订本是2.6的新增功能,虽然十分有用,但这也增加了MySQL数据库的负担。你当然可以手动删除修订本,但这将十分麻烦且耗时过长。

解决方法:这个解决办法非常简单。我们可以使用SQL语句批量删除日志修订本。

登陆phpMyAdmin,选中你的WordPress数据库。
单击“SQL”按钮。把以下窗口中的命令复制粘贴到SQL命令下:DELETE FROM wp_posts WHERE post_type = “revision”;
完成了!删除掉的日志为你腾除了大量数据库空间!
注解:wp_posts 表格包含一个名为post_type 的字段。这个字段可被赋予诸如日志,页面,修订本的值。当我们需要删除日志修订本时,只要运行wp_posts表格中相对应的修订本删除语句就行了。

3 快速删除垃圾评论
问题:我的一个朋友前不久开通博客后,一直在网上努力推广他的博客。 在他外出度假归来时,竟发现自己有5000多条评论等待审核!当然,其中多数都是垃圾广告。但他认为自己不得不逐个审核以防删除了正常评论。

解决方法:庆幸的是,他把这个问题告诉了我。当我告诉他可以使用 SQL时,他已经审核45分钟了。

登陆phpMyAdmin,选中你的WordPress数据库。
单击“SQL”按钮。把以下窗口中的命令复制粘贴到SQL命令下:
DELETE from wp_comments WHERE comment_approved = ‘0′;
完成了!现在可以享受清洁无污染的数据库环境了!
注解:wp_comments表格中包含名为comment_approved的域,它是一个boolean值(1或0)。通过审核的评论值为1,等待审核的值为0.运行以上语句,其实就是删除还没有通过审核的评论。

此操作要谨慎执行。以上语句不仅能帮我们删除大量垃圾评论,同时也会删除无效的没有通过审核的评论。如果你还没有使用Akismet,现在就安装以打击垃圾评论吧。

4 更改日志属性
问题:管理帐户在安装WordPress时就已创建。但许多博主把这个帐户误以为就是写日志的帐号,以致到后来才发现这不是私人帐号。

解决方法:更改所有日志的作者属性要花费很多时间,但使用SQL就不用这么麻烦了。

登陆phpMyAdmin,选中你的WordPress数据库。
首先,打开SQL语句窗口,执行以下命令以获取正确的作者ID:
SELECT ID, display_name FROM wp_users;
phpMyAdmin会显示许多WordPress用户的ID。其中NEW_AUTHOR_ID是最近写日志的作者的ID, OLD_AUTHOR_ID是原始管理员的ID。
交换NEW_AUTHOR_ID 和 OLD_AUTHOR_ID ID后,运行以下语句:
UPDATE wp_posts SET post_author=NEW_AUTHOR_ID WHERE post_author=OLD_AUTHOR_ID;
完成了!以前的日志属性现在已改为你刚刚设置的了!
5 手动重设密码
阅读全文…»

收藏与分享