首页 > 上海日记 > WordPress .htaccess 文件详解
2013
04-12

WordPress .htaccess 文件详解

WordPress 的 .htaccess 文件不可小觑,它能改变 web 服务器上的许多设置。比如,我们可以用它定制 404 错误页面。.htaccess 编辑其实并不难,虽然它只是由一些简单命令或者用法说明组成的文本文件,但是却能极大的提高我们网站的安全性,所以我们要对它有一个详细的了解。

WordPress 在创建 .htaccess 文件并保存的时候可能会有问题,因为 .htaccess 是一个非常奇怪的文件名(这个文件是一个没有名称而只有一个8字符的扩展名)。我们可以尝试在保存文件的时候输入以下文件名:”.htaccess”(包括引号)。如果这不起作用,就需要先把它命名为别的名字(如 htaccess.txt),然后上传到 FTP 服务器后再重命名它。

下面我们主要了解一下 .htaccess 文件是如何提高 wordPress 安全性和可用性的。

1. 首先保护 .htaccess 自身的安全性

<files>order allow,deny
deny from all</files>

阻止用户通过读取和写入 .htaceess 来更改安全性的设置。

2. 隐藏服务器的数字签名

ServerSignature Off

隐藏服务器的数字签名之后,入侵者将很难找到有机会找到安全漏洞,因为他们不知道背后的服务器是什么。

3. 限制上传文件的大小

LimitRequestBody 10240000
# limit file uploads to 10mb

这个能够帮助阻止 DoS 攻击(用户通过上传巨大的文件来冲垮服务器)并且能够节约带宽。

4. 停止 mod_security 过滤器

SecFilterInheritance Off

这是一个可选的设置并且要小心处理。这些指令告诉服务器不要使用 mod_security 过滤器,因为 mod_security 过滤器不允许用户发表含有这些单词 “curl”,“lynx” 或者 “wget” 等等单词的文章。这个看起来有点琐碎,但是这个让一些站点头痛,因为这些单词几乎那些站点每天都会用到。

5. 保护 wp-config.php 文件

<files wp-config.php>
order allow,deny
deny from all
</files>

我们可以通过 .htaccess 文件阻止用户读取和写入 WordPress 的主配置文件。这个指令假设 WordPress 是安装在站带你的根目录。

6. 指定自定义错误文档

ErrorDocument 404 /notfound.php
ErrorDocument 403 /forbidden.php
ErrorDocument 500 /error.php

这条指令做的更多是站点的可用性而不是安全性。它们指定了哪个页面将被显示,一旦服务器错误,如页面找不到(代码 404) 禁止访问(代码 403)等等。

7. 禁止浏览目录

# disable directory browsing
Options All -Indexes

这将阻止服务器在没有找到 index 文件(如 index.html,index.php 等等)的情况下显示文件夹目录内容,这能阻止用户看到文件夹的内容使得更难对网站发动攻击。

8. 防止图片盗链

#disable hotlinking of images
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain.com/.*$ [NC]
#RewriteRule \.(gif|jpg|png)$ <a href="http://www.yourdomain.com/stealingisbad.gif">
http://www.yourdomain.com/stealingisbad.gif
</a> [R,L]

这个能够阻止其他网站盗链本网站的图片,迫使他们 要么指向整个页面,或者其他存储图像的地方。这个保存了宝贵的带宽并且能够增加流量(虽然只是一点点)。下面的代码将会显示 stealingisbad.gif  这张图片,当有人试着热链到到你的网站来显示图片。

9. 在你的站点给每个 URL 设置符合规定的或者“标准”的链接

# set the canonical url
RewriteEngine On
RewriteCond %{HTTP_HOST} ^yourdomain\.com$ [NC]
RewriteRule ^(.*)$ <a href="http://www.yourdomain.com/$1">
http://www.yourdomain.com/$1
</a> [R=301,L]

这能够帮助提高网站的可用性和提高网站在搜索引擎中的排名。总之,它会把来自 http://yourdomain.com/ 的请求重定向到 http://www.yourdomain.com/。

10. 保护博客免受垃圾留言的侵扰

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

最后的那条指令将会阻止用户直接从其他网站的留言提交框发表留言,虽然这不是一个包罗万象的反垃圾留言的方法,但是它确实能够帮助你。

当上传编辑好的 .htaccess 文件到服务器之后,我们应该进行测试,保证我们所有更改的内容都工作正常。

最后编辑:
作者:北街
身高八尺,腰围也是八尺!
捐 赠如果您觉得这篇文章有用处,请支持作者!鼓励作者写出更好更多的文章!

WordPress .htaccess 文件详解》有 14 条评论

  1. 猫主席 说:

    用过防盗链,看着很简单,每次都交给客服弄。。。

  2. 北街 说:

    #只是一个注释符号
    你可以添加在任意地方,只要最前面不加#,就代表可执行
    建议选择性添加

  3. 北街 说:

    直接添加在”# BEGIN WordPress“下面,即可!

  4. 疾风 说:

    这篇得收藏哦 ^_^

  5. 流星 说:

    # BEGIN WordPress

    </if

    都是添加到这两个之间么?

留下一个回复

你的email不会被公开。