wordpress如何屏蔽wp-json(禁用REST API)

潮涌SEO 2022年2月12日12:43:30 评论 110

在wordpress网站日志文件中发现蜘蛛爬行了很多次的/wp-json/目录,在robots文件中disallow掉了爬虫还是访问了那个目录,能不能直接在程序中直接改呢?通过查询相关文档发现WordPress 4.4版本以后增加了一个REST API功能, 通过REST API可以很轻松的获取网站的数据,但是这个功能并不是每个网站都需要的,或者说有需要但并不希望它在head里面输出,那么可以禁用REST API或者说移除head里面wp-json链接。

移除方法

打开主题的 functions.php 文件,加入以下代码即可。但这样做实质上并不会禁用 oembed,如需完全禁用请使用 WordPress 官方开发了一个插件:Disable Embeds。

// 屏蔽 REST API
add_filter('rest_enabled', '__return_false');
add_filter('rest_jsonp_enabled', '__return_false');

// 移除头部 wp-json 标签和 HTTP header 中的 link 
remove_action('wp_head', 'rest_output_link_wp_head', 10 );
remove_action('template_redirect', 'rest_output_link_header', 11 );

注意:屏蔽 REST API 会直接导致 文章 Emebed 功能失效。

由于wordpress新版编辑器的后台会使用wp-json,因此只需要让未登陆的禁止使用即可。上边的方法是都直接禁止了,前后台都禁止了,无法使用新版编辑器。用下面的代码,在你的主题里面的functions.php里面增加:

add_filter('rest_authentication_errors', function () {
            if (!is_user_logged_in()) {
                return new \WP_Error(403, 'not allowed');
            }
        });

 

使用插件禁用wp-json

1、使用disable-json-api插件方式解决:
在网站后台插件安装搜索 disable-json-api ,安装启动即可;

手动下载复制到插件安装目录,启动即可,下载地址:https://wordpress.org/plugins/disable-json-api/

2、wordpress站长工具箱插件imwpf插件:http://www.imwpweb.com/400.html

 

什么是wp-json

WordPress 4.4 版本以后增加了一个 REST API 功能,这是个非常棒功能,通过 REST API 生成的 JSON 接口,可以很轻松的获取网站的数据,可应用于其他网站、手机 APP 或小程序等。但是这个功能并不是每个网站都需要的,如果你博客没有任何客户端,那么你可以移除 WordPress 的 REST API 功能。

WP REST API 是 WordPress 的一个功能,为其提供对外标准的 RESTFul 接口,随着 RESTFul 的畅行和各种前端框架的出现,WP REST API可以让 WordPress 不仅仅存在 Web 端,可以让 WordPress 不仅仅履行一个博客功能,而是可以让它作为后台终端(BackEnd),然后以各种应用的形式实现在各种各样的设备中。

什么是oembed

有没有想过,只需要在日志中输入一个视频网站或者图片分享的 URL,这个 URL 里面含有的视频或者图片就自动显示出来?这样是不是很酷!这个就是 WordPress 的 Embeds 的功能,让你直接发布一个 URL(需要单独一行,纯文本,不带链接才行),就能把这个 URL 中的视频显示到博客上,并且会根据博客的布局调整视频的大小。

SEO优化问题咨询
潮涌SEO

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: