我已经安装了 yoast 的 wpseo,它没有列出站点地图内的所有链接。 它只是只索引 xml 站点地图。
例如:
http://domain.com/sitemap_index.xml list the following xml files.
When i click any one of the following xml file it goes to 404 page.
http://domain.com/post-sitemap.xml
http://domain.com/page-sitemap.xml
以下是我的 nginx 配置:
rewrite ^/sitemap\.xml$ /sitemap_index.xml permanent;
rewrite ^/([a-z]+)?-?sitemap\.xsl$ /index.php?xsl=$1 last;
rewrite ^/sitemap_index\.xml$ /index.php?sitemap=1 last;
rewrite ^/([^/]+?)-sitemap([0-9]+)?\.xml$ /index.php?sitemap=$1&sitemap_n=$2 last;
参考:
http://kb.yoast.com/article/16-my-sitemap-is-giving-a-404-error-what-should-i-do
http://kb.yoast.com/article/123-xml-sitemap-errors
http://www.wpbeginner.com/wp-tutorials/how-to-fix-yoasts-wordpress-seo-sitemap-404-error/
http://kb.yoast.com/article/96-enable-xml-sitemaps-in-the-wordpress-seo-plugin
我从 htpcbeginner 尝试过这个,效果非常好。
将以下行放入 yoursite.com 文件的 location 块内
/etc/nginx/sites-avaliable
并且不要忘记将其重新链接到 /etc/nginx/sites-enabled
文件夹。
#This rewrite redirects sitemap.xml to sitemap_index.xml, which is what Yoast's WordPress SEO plugin generates.
rewrite ^/sitemap\.xml$ /sitemap_index.xml permanent;
#This rewrite ensures that the styles are available for styling the generated sitemap.
rewrite ^/([a-z]+)?-?sitemap\.xsl$ /index.php?xsl=$1 last;
#These rewrites rule are generated by Yoast's plugin for Nginx webserver.
rewrite ^/sitemap_index\.xml$ /index.php?sitemap=1 last;
rewrite ^/([^/]+?)-sitemap([0-9]+)?\.xml$ /index.php?sitemap=$1&sitemap_n=$2 last;
/%postname%/
。sudo service nginx restart
那应该对你有用。祝你好运。