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

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


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

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


添加如下代码



  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. }



现在再看看就好了



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

评论

此博客中的热门博文

EndNote为参考文献分类显示

如何选择和阅读科技论文

EndNote X8 汉化版

EndNote X8 新功能简介

推荐25个搜索下载电子书籍的好地方