对于任何Wordpress的feed / rss,返回404

时间:2015-08-11 18:49:37

标签: php wordpress apache .htaccess mod-rewrite

如果网址匹配"feed",我正试图强制返回404:http://example.com/wordpress/?feed=rss2

我将RedirectMatch ^(.*)feed(.*)$ [R=404]添加到.htacess但它没有返回任何404错误。

对于functions.php中的Wordpress,我可以使用下一个代码:

function fb_disable_feed() {
    include( get_query_template( '404' ) );
    header('HTTP/1.0 404 Not Found');
    exit; 
}
add_action('do_feed', 'fb_disable_feed', 1);
add_action('do_feed_rdf', 'fb_disable_feed', 1);
add_action('do_feed_rss', 'fb_disable_feed', 1);
add_action('do_feed_rss2', 'fb_disable_feed', 1);
add_action('do_feed_atom', 'fb_disable_feed', 1);

但它会将http://example.com/wordpress/?feed=rss2(301)重定向到http://example.com/wordpress/feed,然后才会返回404错误。

我需要http://example.com/wordpress/?feed=rss2会返回404错误&不会重定向到http://example.com/wordpress/feed

1 个答案:

答案 0 :(得分:3)

您可以通过mod_rewrite规则执行此操作,而不是使用WP PHP代码。

将此规则作为第一条规则放在主WP .htaccess中:

RewriteEngine On

RewriteCond %{THE_REQUEST} feed [NC]
RewriteRule ^ - [L,R=404]