强化WordPress:使用htaccess阻止/包含

时间:2014-08-05 作者:commonpike

此页

https://wordpress.org/support/article/hardening-wordpress/

表示这应该包含在中。htaccess file阻止对includes目录中文件的请求。

# Block the include-only 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>


# BEGIN WordPress
...
这是怎么回事?据我所知,它只指定不重写某些URL(使用-),然后实际上无法重写所有其他请求。有什么遗漏吗?

1 个回复
最合适的回答,由SO网友:birgire 整理而成

你问:

这是怎么回事?据我所知,它只指定不重写某些URL(使用-),

这些文件包含在WordPress PHP脚本中,因此无需在浏览器中访问它们,but 请注意“重写”标志。

以下是有关F, LS 标志Apache docs:

使用[F]标志会导致服务器向客户端返回403禁止状态代码。

当使用[F]时,会隐含一个[L]——也就是说,会立即返回响应,并且不会评估进一步的规则。

[S]标志用于跳过您不想运行的规则。skip标志的语法是[S=N],其中N表示要跳过的规则数(前提是RewriteRule匹配)。这可以看作是重写规则集中的goto语句。

你问:

然后无法重写所有其他请求。

no, 与安全重写不匹配的所有其他HTTP请求都转到# BEGIN WordPress 部分

那么,让我们看看受这些安全重写规则影响的文件数量:

http://example.com/wp-admin/includes/*                 -  62 PHP files
http://example.com/wp-includes/*.php                   - 110 PHP files
http://example.com/wp-includes/theme-compat/*          -   5 PHP files
http://example.com/wp-includes/js/tinymce/langs/*.php  -   0 PHP files
根据我的WordPress 3.9.1安装。

结束

相关推荐

如何使我的.htaccess文件可由wp-admin写入?

我的ISP更改了Wordpress博客的主机,一切都停止了。有一个DNS问题,但他们解决了这个问题,但除主页外的每个页面都返回了404错误。当我查看permalinks页面时(/wp-admin/options-permalinks.php) 在wp admin中,我看到了以下内容:如果您的。htaccess文件是可写的,我们可以自动执行此操作,但事实并非如此,这些是您应该在中包含的mod\\u重写规则。htaccess文件。在字段中单击,然后按CTRL+a组合键选择全部。添加它列出的内容(通过我的ISP