如果您想提高安全性并减少 WordPress网站上的漏洞,那么拥有一个配置良好的.htaccess文件至关重要。通常,创建自定义.htaccess文件的主要目的是防止您的网站被黑客入侵,但它也是处理重定向和管理缓存相关任务的绝佳方式。

.htaccess是Apache Web服务器上使用的配置文件。大多数WordPress站点都在Apache服务器上运行,尽管其中一小部分由Nginx提供支持。在本文中,您可以找到.htaccess代码片段的集合,其中大部分可用于保护您的网站,而其余代码片段实现其他有用的功能。

不要忘记在编辑之前备份.htaccess文件,以便在出现问题时始终可以返回到以前的版本。

如果你是一个不喜欢触摸配置文件的人,我推荐你使用BulletProof Security插件,它是市场上最可靠(也可能是最老的)免费.htaccess安全插件。

创建 WP 默认的 .htaccess

.htaccess基于每个目录工作,这意味着每个目录都可以拥有自己的.htaccess文件。很可能你的WordPress网站还没有.htaccess文件。如果在根目录中找不到.htaccess文件,请创建一个空文本文件并将其命名为.htaccess。

下面,您可以找到WordPress使用的默认.htaccess。无论何时需要此代码,您都可以在WordPress Codex中快速查找。请注意,WP Multisite(多站点)有一个不同的.htaccess 。

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

以# 开头的行是注释。不要编辑任何# BEGIN WordPress和# END WordPress之间的代码。在这些默认规则下添加自定义.htaccess 规则。

有用的.htaccess代码

你可以在本文中找到的所有代码段,然后添加到根目录的核心.htaccess文件。

1.拒绝访问所有.htaccess文件

下面的代码拒绝访问你WordPress中的所有.htaccess文件。这样,您可以阻止别人查看你的Web服务器配置。

# Denies access to all .htaccess files
<Files ~ "^.*\.([Hh][Tt][Aa])">
Order Allow,Deny
Deny from all
Satisfy all
</Files>

2.保护你的WP配置文件

wp-config.php文件包含所有WP配置,包括数据库登录名和密码。您可以拒绝所有人或允许管理员访问它。

如果你选择后者,去除# Allow from xx.xx.xx.xxx 前面的 # ,并插入管理员的IP地址来代替xx.xx.xx.xxx。

# Protects wp-config
<Files wp-config.php>
Order Allow,Deny
# Allow from xx.xx.xx.xxx
# Allow from yy.yy.yy.yyy
Deny from all
</Files>

3.防止XML-RPC DDoS攻击

WordPress 默认支持XML-RPC,这是一个使远程发布接口。然而,虽然它是一个很棒的功能,但它也是WP最大的安全漏洞之一,因为黑客可能利用它来进行DDoS攻击。

如果您不想使用此功能,最好禁用它。和以前一样,你可以通过去除# Allow from xx.xx.xx.xxx前面的 # 和添加管理员(或多个)的IP地址。

# Protects XML-RPC, prevents DDoS attack
<FilesMatch "^(xmlrpc\.php)">
Order Deny,Allow
# Allow from xx.xx.xx.xxx
# Allow from yy.yy.yy.yyy
Deny from all
</FilesMatch>

4.保护网站后台

通过仅向管理员提供访问权限来保护网站后台也是一个好主意。在这里,不要忘记添加至少一个“允许”例外IP,否则您根本无法访问网站后台。

注:如果你的宽带没有固定的IP,请务必不要设置,否则你可能无法访问网站后台!

# Protects admin area by IP
AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName "WordPress Admin Access Control"
AuthType Basic
<LIMIT GET>
Order Deny,Allow
Deny from all
Allow from xx.xx.xx.xxx
Allow from yy.yy.yy.yyy
</LIMIT>

5.阻止目录列表

大多数WordPress网站不会禁用目录列表,这意味着任何人都可以浏览其文件夹和文件,包括媒体上传和插件文件。不用说,这是一个巨大的安全漏洞。

下面,你可以看到典型的WordPress目录列表的外观。

幸运的是,您只需要一行代码就可以阻止此功能。此代码段将向想要访问您的目录的任何人返回403错误消息。

# Prevents directory listing
Options -Indexes

6.防止用户名枚举

如果启用了WP永久链接,则使用作者存档枚举用户名非常容易。然后,显示的用户名(包括管理员的用户名)可用于暴力攻击。

将下面的代码插入.htaccess文件以防止用户名枚举。

# Prevents username  enumeration
RewriteCond %{QUERY_STRING} author=d
RewriteRule ^ /? [L,R=301]

7.阻止垃圾邮件发送者和机器人

有时你可能希望限制某些IP地址的访问。此代码段提供了一种简单的方法来阻止你已经知道的垃圾邮件发送者和机器人。

# Blocks spammers and bots
<Limit GET POST>
Order Allow,Deny
Deny from xx.xx.xx.xxx
Deny from yy.yy.yy.yyy
</Limit>
Allow from all

8.防止图片盗链

虽然不是安全威胁,但图片盗链仍然是一件烦人的事情。人们不仅在未经您许可的情况下使用你的图片,可能会导致你的带宽费用支出。使用这几行代码,您可以保护你的网站被盗链图片。

# Prevents image hotlinking
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourwebsite.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourwebsite2.com [NC]
RewriteRule \.(jpe?g?|png|gif|ico|pdf|flv|swf|gz)$ - [NC,F,L]

9.限制对插件和主题PHP文件的直接访问

如果有人直接调用您的插件和主题文件,无论是意外发生还是恶意攻击者,都会很危险。此代码段来自Acunetix网站安全公司 ; 您可以在他们的博文中阅读有关此漏洞的更多信息。

# Restricts access to PHP files from plugin and theme directories
RewriteCond %{REQUEST_URI} !^/wp-content/plugins/file/to/exclude\.php
RewriteCond %{REQUEST_URI} !^/wp-content/plugins/directory/to/exclude/
RewriteRule wp-content/plugins/(.*\.php)$ - [R=404,L]
RewriteCond %{REQUEST_URI} !^/wp-content/themes/file/to/exclude\.php
RewriteCond %{REQUEST_URI} !^/wp-content/themes/directory/to/exclude/
RewriteRule wp-content/themes/(.*\.php)$ - [R=404,L]

10.设置永久重定向

你可以使用.htaccess 轻松处理永久重定向。首先,你必须添加旧URL,然后按照指向要将用户重定向到的页面的新URL。

# Permanent redirects
Redirect 301 /oldurl1/ http://yoursite.com/newurl1
Redirect 301 /oldurl2/ http://yoursite.com/newurl2

11.将访问者发送到维护页面

如果你的网站在维护,我们希望告知访客这个事情,可以使用规则去实现。你需要一个单独的维护页面(maintenance.html在示例中)才能使此.htaccess规则生效。此代码将你的WordPress站点置于维护模式。

# Redirects to maintenance page
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REMOTE_ADDR} !^123\.456\.789\.000
RewriteCond %{REQUEST_URI} !/maintenance.html$ [NC]
RewriteCond %{REQUEST_URI} !\.(jpe?g?|png|gif) [NC]
RewriteRule .* /maintenance.html [R=503,L]
</IfModule>

12.限制对 wp-includes 目录的所有访问

/wp-includes/文件夹包含必需的核心WordPress文件。没有内容、插件、主题或用户可能想要访问的任何其他内容。因此,为了加强安全性,最好限制对它的所有访问。

# Blocks all wp-includes folders and files
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ - [F,L]
RewriteRule !^wp-includes/ - [S=3]
RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
RewriteRule ^wp-includes/theme-compat/ - [F,L]
</IfModule>

13.阻止跨站点脚本(XSS)

以下代码片段来自WP Mix,它可以保护你的站点免受一些常见的XSS攻击,即脚本注入和尝试修改全局和请求变量。

# Blocks some XSS attacks
<IfModule mod_rewrite.c>
RewriteCond %{QUERY_STRING} (\|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteRule .* index.php [F,L]
</IfModule>

14.启用浏览器缓存

正如我之前提到的,.htaccess不仅有利于安全性和重定向,还可以帮助您管理缓存。下面的代码片段来自Elegant Themes,它通过允许访问者保存某些类型的文件使浏览器缓存成为可能,因此下次访问时他们不必再次下载它们。

# Enables browser caching
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 2 days"
</IfModule>

15.设置自定义错误页面

你可以使用.htaccess在WordPress网站上设置自定义错误页面。对于这种方法,您还需要创建自定义错误页(custom-403.html,custom-404.html在本例中),并上传到你的网站根目录。

您可以为所需的任何HTTP错误状态代码(4XX和5XX状态代码)设置自定义错误页面。

# Sets up custom error pages
ErrorDocument 403 /custom-403.html
ErrorDocument 404 /custom-404.html

好了,今天就分享这些 .htaccess 代码片段,如果你有其他不错的片段,欢迎和我们分享!

更多文章查看:www.httple.net

WordPress .htaccess 安全配置15个相关推荐

  1. linux apache htaccess,Apache下htaccess的配置使用详解

    Apache下htaccess的配置使用详解 看到群里很多前辈都在讨论.htaccess的用法,自己之前也小用过,只做了404的重定向,当然.htaccess的功能远不止这些,他还可以帮助我们做很多( ...

  2. 网站搭建从零开始(六) WordPress的基本配置

    上一篇里,我们一起安装好了WordPress,成功的搭建了我们的网站. WordPress框架特点 WordPress是一个被广泛使用的网站框架,主要用于博客类网站,但也被一些站点做成资讯类网站.购物 ...

  3. mysql phpwind_php+mysql及phpwind和wordpress的安装配置

    php+mysql字符界面的 配置:yum install mysql mysql-server yum install php-mysql service mysqld start chkconfi ...

  4. LAMP+WordPress部署(yum) 配置简单 轻松上手 亲测有效

    目录 了解: 一)LAMP介绍 二)源码包和yum安装优劣 环境: 实现: 1.Mariadb 2.PHP 3.Apache 5.Wordpress发布业务 7.启动测试 报错集合: 了解: 一)LA ...

  5. php取 二级域名 自动转向页面 .htaccess如何配置,二级域名绑定子目录使用htaccess进行完美跳转解析...

    一个老网站部分栏目调整需要绑定二级域名,CMS支持自动绑定二级域名,以前该网站部分栏目也绑定过,但这次操作后一直绑定不成功,只能跳转网站首页不能跳转子目录.经查看这个网站使用的是apache服务器,支 ...

  6. WSL 2.0+LAMP+WordPress 安装配置

    长流程WSL2.0+LAMP+WordPress 安装配置 不少小网站跑的WordPress,网上共享空间或者VPS又是Linux系统,所以自己在Windows上搭个仿真的坏境当练手十分好玩.笔者大感 ...

  7. wamp安装和配置_手动配置Wordpress环境真香,让我毫不犹豫卸载LAMP和WAMP环境

    作为一名Java开发者,我平时也喜欢学习除Java以外的其他技术,例如PHP(有人说PHP是最好的编程语言,我无心考究).对于任何一个开发者,在学习一门新的编程语言过程中,首先都会面对配置开发环境这样 ...

  8. WordPress管理仪表板:在15分钟内成为WordPress专家

    WordPress管理仪表板是内容管理系统 (CMS)的核心和灵魂.在这里,您可以监督网站的各个方面,从配置基本设置到发布内容.安装插件和主题等等.如果您不熟悉 WordPress 管理仪表板,您将很 ...

  9. php配置支持mysql解决本地安装wordpress问题

    先说一下我被折腾的纠结,我想在本地apahce+php+mysql环境下安装wordpress,当配置好apache和php后在浏览器中能显示出phpinfo信息,但运行wordpress文件夹里的i ...

  10. Apache服务器中的.htaccess文件的配置

    如何在windows下创建.htaccess文件 首先, 暂且别管.htaccess是什么, 有什么作用, 让我们暂且解决首要问题:如何在windows下创建.htaccess文件. 在windows ...

最新文章

  1. windows2016重新配置sid
  2. 阿里P7架构师详解微服务链路追踪原理
  3. 【PAT笔记】PAT中的散列思想
  4. 【深度学习的数学】为什么用二次代价函数,误差越大,参数调整幅度越小?
  5. 移动硬盘无法弹出的问题
  6. mac php编译freetype,Mac下本机自带PHP缺少freetype最终解决方案
  7. 将js对象转化为树形结构
  8. C++基础::cin/cout
  9. oracle xsql详解(二)
  10. 《机械原理》上 学后感
  11. 吃货在东京 -- 记那段吃不饱的日子 之五 保护加班后的胃
  12. Python3练习题系列(01)
  13. html chm 打不开,Win7系统中出现CHM打不开的具体解决方法
  14. centos7 搭建最新的RAP2接口管理工具并导入原rap旧数据
  15. javascript判断浏览器和终端类型,js如何区分手机、电脑终端和浏览器
  16. C# AD域账号登录验证,获取域用户信息
  17. ssc预测计划 php,千里马全天ssc计划
  18. 安卓系统能运行 linux,重磅!安卓系统竟能运行PC软件,实测效果令人惊在当场!...
  19. matlab绿色 不伤眼,蓝光和超清哪个伤眼睛 伤害都很低不用过多担心
  20. 2020西山居暑假SEED训练营游戏开发

热门文章

  1. 不知如何走的立交桥(西直门交警一文背景)
  2. FWT(快速沃尔什变换)
  3. 国家新标准上线,妈妈再也不用担心我吃辣条啦!
  4. Quirks模式与标准模式
  5. Android 小宝宝买装备案列创建
  6. HR必备基础能力之人性
  7. C语言实战--DDOS攻击器
  8. 命令提示符命令(cmd)
  9. 触动精灵中return-break-exit的使用总结
  10. springboot打包-依赖包到单独文件夹并微缩原有jar包体积