解决WordPress SEO插件XML站点地图404报错的问题

自从博客换到独立主机以后,装了WordPress,又装了几个插件,其中之一就是WordPress SEO,也叫Yoast WordPress SEO。不过这货在XML站点地图老是报错!

解决WordPress SEO插件XML站点地图404报错的问题

经过了很多曲折,最后终于解决WordPress SEO插件XML站点地图404报错的问题。步骤如下

1、进入网站的后台管理,我用的是cPanel虚拟主机管理系统,其它管理系统不知道。打开资源管理器-WWW目录,找到.htaccess文件,在线编辑。线下编辑了也可以,不过还要上传。也可以WordPress后台的SEO设置-编辑文件中修改.htaccess。

解决WordPress SEO插件XML站点地图404报错的问题

添加如下代码

  1. # WordPress SEO - XML Sitemap Rewrite Fix
  2. RewriteEngine On
  3. RewriteBase /
  4. RewriteRule ^sitemap_index\.xml$ /index.php?sitemap=1 [L]
  5. RewriteRule ^([^/]+?)-sitemap([0-9]+)?\.xml$ /index.php?sitemap=$1&sitemap_n=$2 [L]
  6. # END WordPress SEO - XML Sitemap Rewrite Fix

保存退出

2、找到WWW-/wp-content/plugins/wordpress-seo/inc/class-sitemaps.php编辑
把如下代码换成

  1. function init() {
  2. $GLOBALS['wp']->add_query_var( 'sitemap' );
  3. $GLOBALS['wp']->add_query_var( 'sitemap_n' );
  4. $options = get_wpseo_options();
  5. $this->max_entries = ( isset( $options['entries-per-page'] ) && $options['entries-per-page'] != '' ) ? intval$options['entries-per-page'] ) : 1000;
  6. add_rewrite_rule( 'sitemap_index\.xml$', 'index.php?sitemap=1', 'top' );
  7. add_rewrite_rule( '([^/]+?)-sitemap([0-9]+)?\.xml$', 'index.php?sitemap=$matches[1]&sitemap_n=$matches[2]', 'top' );
  8. }

替换成如下代码

  1. /**
  2. * Initialize sitemaps. Add sitemap rewrite rules and query var
  3. */
  4. function init() {
  5. global $wp_rewrite;
  6. $GLOBALS['wp']->add_query_var( 'sitemap' );
  7. $GLOBALS['wp']->add_query_var( 'sitemap_n' );
  8. add_rewrite_rule( 'sitemap_index\.xml$', 'index.php?sitemap=1', 'top' );
  9. add_rewrite_rule( '([^/]+?)-sitemap([0-9]+)?\.xml$', 'index.php?sitemap=$matches[1]&sitemap_n=$matches[2]', 'top' );
  10. $wp_rewrite->flush_rules();
  11. }

现在再看看就好了

解决WordPress SEO插件XML站点地图404报错的问题

吐槽一下:这货怎么不更新修复一下这个BUG?!

发表评论

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