我将此添加到了WordPress网站的.htaccess
:
<files xmlrpc.php>
order allow,deny
deny from all
</files>
它有效,当有人尝试访问http://example.com/xmlrpc.php
时,显示以下消息:
禁止
您无权访问此服务器上的/xmlrpc.php。
但是,日志仍然显示(less /var/log/apache2/error.log
):
[Thu May 02 10:02:03.316061 2019] [access_compat:error] [pid 19467]
[client 1.2.3.4:49409] AH01797: client denied by server
configuration: /path/to/xmlrpc.php
如何拒绝对xmlrpc.php的访问(可能来自.htaccess),但阻止它出现在Apache日志中?
答案 0 :(得分:4)
RewriteRule ^(xmlrpc\.php) - [F,L,NC]
使用[F]标志会使服务器向客户端返回403 Forbidden状态代码。
[L]标志使mod_rewrite停止处理规则集。
使用[NC]标志会使RewriteRule以不区分大小写的方式进行匹配。
有关更多信息:
答案 1 :(得分:2)
您可能会知道,因为我可以看到您超过19k的声誉:)
xmlrpc在wp中默认为false,因此不建议打开global。
在.htaccess
或functions.php
add_filter('xmlrpc_enabled', '__return_false')
rpc被禁用。
如果没有?然后将其添加到您的functions.php
中,它将解决您的问题。
如果没有解决,请使用插件
要拒绝所有人,最好使用像manuel Manage XML-RPC.
这样的插件来做到这一点如果您只想允许自己。
检查您的.htaccess
中是否没有rpc false并添加以下代码以仅对您的IP启用。
<Files xmlrpc.php>
order deny,allow
deny from all
allow from 10.123.456.000 //Replace with your ip
</Files>
或者仅允许通过 GET,PROPFIND,POST,OPTIONS,PUT,HEAD [403]
RewriteCond %{REQUEST_METHOD} !^(GET|HEAD|POST|PROPFIND|OPTIONS|PUT)$ [NC]
RewriteRule .? - [F,NS,L]
如果要允许rpc,请转到此处并按照以下步骤操作: https://www.wikihow.com/Enable-XML-RPC-in-WordPress