WordPress安全:完全禁用RSS Feed和ATOM Feed功能

编辑于:2023年05月23日

WordPress安全:完全禁用RSS Feed和ATOM Feed功能

WordPress 的 Feed 功能可以用来生成 RSS(Really Simple Syndication)和 ATOM(Atom Syndication Format)格式的内容,使得读者可以通过订阅来获取网站上的最新文章和页面。然而在当前时代,几乎没人会用订阅功能了,但它却为网站内容被采集提供了便利条件,因此不如禁掉。

1. WordPress Feed

WordPress 默认情况下会自动生成 Feed,Feed 的链接一般在头部的 meta 标签中提供,例如:

<link rel="alternate" type="application/rss+xml" title="My Site RSS Feed" href="http://你的域名/feed/" />

如果你不希望在网站上提供 Feed 功能,那可以通过如下方法从页面头部移除并禁用此功能。

2. 从头部移除 Feed

remove_action('wp_head', 'feed_links_extra', 3);
remove_action('wp_head', 'feed_links', 2);

在主题的 functions.php 文件中添加以上代码,这将从网站头部完全移除 feed 相关的代码,包括 feed 链接和 feed 元标记。注意,如果您想要保留其中一种 feed 类型(例如RSS feed),请不要删除相应的 remove_action 行。

3. 禁用 RSS Feed 和 ATOM Feed

3.1 全部禁用

可以通过添加以下代码到您的网站主题的 functions.php 文件来完全禁用RSS Feed和ATOM Feed功能:

function disable_feed() {
    wp_die( __('No feed available, please visit the homepage!') );
}

add_action('do_feed', 'disable_feed', 1);
add_action('do_feed_rdf', 'disable_feed', 1);
add_action('do_feed_rss', 'disable_feed', 1);
add_action('do_feed_rss2', 'disable_feed', 1);
add_action('do_feed_atom', 'disable_feed', 1);

以上代码将所有的 Feed 请求重定向到一个带有错误消息的页面,提示用户访问主页获取信息。这种方法可以彻底禁用 Feed 功能,而且不需要任何额外的插件或配置。

3.2 部分禁用

如果你只想禁用某一种Feed(RSS或ATOM),可以将上述代码中相应的部分保留,将其他部分删除。例如,如果你只想禁用 RSS Feed,则可以使用以下代码,这将禁用所有的 RSS Feed 请求,并重定向到一个带有错误消息的页面:

function disable_rss() {
    wp_die( __('No feed available, please visit the homepage!') );
}

add_action('do_feed', 'disable_rss', 1);
add_action('do_feed_rdf', 'disable_rss', 1);
add_action('do_feed_rss', 'disable_rss', 1);
add_action('do_feed_rss2', 'disable_rss', 1);

如果你只想禁用 ATOM Feed,则可以使用以下代码,这将禁用所有的 ATOM Feed 请求,并重定向到一个带有错误消息的页面:

function disable_atom() {
    wp_die( __('No feed available, please visit the homepage!') );
}

add_action('do_feed_atom', 'disable_atom', 1);

总的来说,禁用 WordPress 的 Feed 功能非常简单,只需要添加一些代码到主题的 functions.php 文件中即可。

相关推荐

暂无评论