Tags:, Posted in WordPress 我抢沙发

对于使用 LAMP(Linux+Apache+MySQL+PHP)结构来搭建自己的 WordPress 服务器平台的同学来说,.htaccess 文件再熟悉不过了。合理使用 .htaccess 能极大提高 WordPress 的安全性和易用性。在本篇 WordPress 教程中,我们从A到Z,一起来探讨26条WordPress .htaccess技巧。


1、保护 wp-admin 目录

wp-admin 是 WordPress 管理后台,我们可以限定 IP 访问,不让坏人越雷池一步:

order deny,allow
allow from a.b.c.d # This is your static IP
deny from all

2、Blacklist

绿光荭草小盆友曾非常困惑如何阻止某些 IP 访问其网站,答案就是建立黑名单:

order allow,deny
allow from all
deny from 123.456.789 # Change this IP instead that you want to deny

3、保护 WP-Config 文件

WP-Config 文件里存有数据库地址、用户名以及密码等敏感信息,保护起来吧:


order allow,deny
deny from all

4、Disable Directory Browsing(禁止列目录)

WordPress 有个安全隐患,就是容易被人列目录,主题、插件目录一目了然,自家的菜园子怎能让人想进就进,想出就出呢,安个门儿吧:

# disable directory browsing
Options All -Indexes

5、Explanation(解释)

都写了4条 .htaccess技巧了,也许还有同学在犯嘀咕,到底什么是 .htaccess 啊?它都能干什么呢?下面我们一起来看看它的解释吧。

.htaccess 文件没有确切的解释,笼统的说 .htaccess 是 Apache 服务器的一个非常强大的分布式配置文件。正确的理解和使用 .htaccess 文件,可以帮助我们优化自己的服务器或者虚拟主机。

启用 .htaccess,需要修改 httpd.conf,启用 AllowOverride,并可以用 AllowOverride 限制特定命令的使用。如果需要使用.htaccess 以外的其他文件名,可以用 AccessFileName 命令来改变。

6、Feedburner

WordPress 自带的 Feed 没有统计功能,我们可以使用 Feedburner 替换它:


RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} !FeedBurner [NC]
RewriteCond %{HTTP_USER_AGENT} !FeedValidator [NC]
RewriteRule ^feed/?([_0-9a-z-]+)?/?$ http://feedproxy.google.com/yourfeedburnerid [R=302,NC,L]

当然,如果你能不介意 Feedsky 的抓取速度的话,国内的朋友可以使用 Feedsky 替换。

7、Gzip 压缩 js 和 css

许多 WordPress 教程都提及如何使用 Gzip 压缩问题,可传统的 Gzip 压缩会耗费一定的 CPU 资源,当 CPU 使用率过高时,Gzip 压缩模式下的网页访问速度可能会更慢。我们可以使用 gzip 将 js 和 css 文件压缩成 .gz 压缩文件,就能很好解决流量、访问速度和服务器 CPU 资源的矛盾问题。

RewriteRule (.*.css$|.*.js$) gzip.php?$1 [L]

8、Disable hotlinking(防止盗链)

盗链是指别人直接链接你站内资源,比如图片、音乐、电子书等文件,从而浪费网站宝贵的流量,我们可以使用以下 .htaccess 技巧阻止盗链:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain.com/.*$ [NC]
#RewriteRule \.(gif|jpg)$ - [F]
RewriteRule \.(gif|jpg)$ http://www.yourdomain.com/nohotlink.gif [R,L]

注:替换 yourdomain.com 为自己的网址和 http://www.yourdomain.com/nohotlink.gif 为自己定制的防盗链声明图片。

9、Important(重要性)!

看了前面几条 .htaccess 技巧,你是不是蠢蠢欲动、跃跃欲试了呢?!别急,先备份,时常备份才能免除后顾之忧。

10、Jauntily show the admin’s email address in error message

在错误页显示管理员邮箱,以使访问者能及时联系我们。

ServerAdmin name@domain.com
11、Keep RSS ‘content thieves’ away(防止 RSS 采集)

我们有很多方法防止垃圾站点采集,可通过 RSS 采集,总是令人防不胜防,幸好,我们还可以通过 .htaccess 技巧,阻止其采集我们的网站内容,只要知道它的 IP 即可。

RewriteEngine on
RewriteCond %{REMOTE_ADDR} ^123.45.67.89
RewriteRule ^(.*)$ http://yourdomain.com/feed

12、Limiting number of simultaneous connections(限制并发连接数)

过高的并发连接数会严重影响服务器性能,我们可以通过设置 .htaccess 适当限制一下,如:

MaxClients 40

13、Maintenance(维护页面)

当我们的站点正在升级、迁移时,我们需要做一个维护页面:

RewriteEngine on
RewriteCond %{REQUEST_URI} !/maintenance.html$
RewriteCond %{REMOTE_ADDR} !^123\.123\.123\.123
RewriteRule $ /maintenance.html [R=302,L]

注:新建一个 maintenance.html 页面,并将 123.123.123.123 替换成你自己的 IP 地址。

14、Deny no referer requests

通过机器人群发垃圾留言是 Spammers 的惯用伎俩,下面这条 .htaccess 技巧将判断评论提交地址,如非本站,则拒绝:

RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .wp-comments-post\.php*
RewriteCond %{HTTP_REFERER} !.*yourblog.com.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L]

15、Force files when opening to ’save as’

如果你经常提供 .avi .mpg .mov 等媒体文件下载,下面这条 .htaccess 非常有用,它将强迫保存文件而不是在线播放。


AddType application/octet-stream .avi .mpg .mov .pdf .xls .mp4

16、Protect your .htaccess file(保护 .htaccess 文件)


order allow,deny
deny from all
satisfy all

17、Quicken your site’s loading time by caching

又是一条通过 gzip 压缩减少页面加载时间的 .htaccess 技巧,文章太长,请点击
.htaccess-gazip and cache your site for faster loading and bandwidth saving 查看

18、Redirect to other pages on your site(重定向博客地址)

RedirectMatch 301 ^/blog/.*$ http://domain.com/target.html

19、Spam

阻止 spammers、scrapers 以及其他 scumbags 是我们义不容辞的任务,这不,就有人建立了一个 .htaccess 黑名单(实时更新)

20、Set the timezone of the server(设置服务器时区)

SetEnv TZ America/Indianapolis

请将 America/Indianapolis 设置为大家所在时区即可,时区的列表可以在这里找到: http://us2.php.net/manual/en/timezones.php

21、Remove /category/ from your category URL

RedirectMatch 301 ^/category/(.+)$ http://domain.com/$1
# OR
RewriteRule ^category/(.+)$ http://domain.com/$1 [R=301,L]

22、Valiantly automatically fix URL spelling mistakes

这个 .htaccess 小把戏将为大家自动修正 url 拼写错误:


CheckSpelling On


23、Redirect from http://www.whatever to http://whatever

也许许多同学像站趣一样爱用不带 www 的 url 地址,那么,如果有习惯性输入 www 的访客怎么办?通过 .htaccess 将其重定向过来呗:

# permanently redirect from www domain to non-www domain
RewriteEngine on
Options +FollowSymLinks
RewriteCond %{HTTP_HOST} ^www\.domain\.tld$ [NC]
RewriteRule ^(.*)$ http://domain.tld/$1 [R=301,L]

24、Make your wp-login.php page xenophobic

wp-login.php 是 WordPress 的登录页面,阻止其他人登录,不就相当于保护了 WordPress 管理后台了么:


Order deny,allow
Deny from All
Allow from 123.456.789.0

25、Easily rename your .htaccess file(重命名 .htaccess)

我们可以将 .htaccess 命名为任意文件名,以达到保护其安全性的目的:


# rename htaccess files
AccessFileName ht.access

26、Say zygote in your .htaccess file

这真是一个很雷人的 .htaccess 技巧,当我们在 .htaccess 加入 zygote 时,留言者留言时则需在留言开头添加“#”,囧

分享&收藏

  • del.icio.us
  • Facebook
  • TwitThis
  • 百度搜藏
  • 饭否
  • 收客
  • QQ书签
  • 我挖网
  • 新浪ViVi
  • 365Key网摘
  • De.lirio.us
  • Digg
  • email
  • Google Bookmarks
  • POCO网摘
  • 豆瓣
  • 豆瓣九点
  • MSN Reporter
  • RSS
六月 28, 2009