在Wordpress上WordPress SEO by Yoast这个插件应该是算是Wordpress平台上最为出色的SEO插件之一,每天的活跃安装量都有百万计算。不过使用Wordpress seo这个插件上的网站地图你可能会遇到404错误等无法打开网站地图的问题,以下是最简单角解决办法:
1.首先这个问题并不是Wordpress seo by yoast本身的错误,只是由于可能是其它插件的代码引起的。
2.XML网站地图404错误表示找不到这个内容。因为这个XML地图并非实际存在,因此有人想通过修改伪静态重写规则来解决,其实这并不是最好的解决办法,而且太过复杂。
3.最简单解决这个XML地图错误的办法是:重置一下固定链接的结构,比如更换一下你的链接结构,然后再更改回来,你会发现这个问题就解决了。在Wordpress后台管理菜单中的:设置->固定链接。当然其实也可以尝试一下,无须更改这个原有的固定链接结构,而只是再次保存一下就可以了(官方解决办法)
4.当然如果你的网站没有某些内容,例如目录,那么你当然就没有这个地图了,所以你可以先增加内容然后再到Wordpress seo菜单中执行XML Sitemaps中的检查按钮。
5.如果上述办法仍然无法解决,那么只能更改伪静态重写规则了:
Apache环境:
# WordPress SEO - XML Sitemap Rewrite Fix RewriteEngine On RewriteBase / RewriteRule ^sitemap_index.xml$ /index.php?sitemap=1 [L] RewriteRule ^locations.kml$ /index.php?sitemap=wpseo_local_kml [L] RewriteRule ^geo_sitemap.xml$ /index.php?sitemap=geo [L] RewriteRule ^([^/]+?)-sitemap([0-9]+)?.xml$ /index.php?sitemap=$1&sitemap_n=$2 [L] RewriteRule ^([a-z]+)?-?sitemap.xsl$ /index.php?xsl=$1 [L] # END WordPress SEO - XML Sitemap Rewrite Fix
如果你的Wordpress博客放在二级目录里,例如是wordpress,那么应该用这个规则:
# WordPress SEO – XML Sitemap Rewrite Fix – for subfolder installRewriteEngine OnRewriteBase /wordpress/RewriteRule ^sitemap_index.xml$ /wordpress/index.php?sitemap=1 [L]RewriteRule ^locations.kml$ /wordpress/index.php?sitemap=wpseo_local_kml [L]RewriteRule ^geo_sitemap.xml$ /wordpress/index.php?sitemap=wpseo_local [L]RewriteRule ^([^/]+?)-sitemap([0-9]+)?.xml$/wordpress/index.php?sitemap=$1&sitemap_n=$2 [L]# END WordPress SEO – XML Sitemap Rewrite Fix
NGINX环境:
#Yoast sitemap location ~ ([^/]*)sitemap(.*)\.x(m|s)l$ { ## this redirects sitemap.xml to /sitemap_index.xml rewrite ^/sitemap\.xml$ /sitemap_index.xml permanent; ## this makes the XML sitemaps work 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; ## The following lines are optional for the premium extensions ## News SEO rewrite ^/news-sitemap\.xml$ /index.php?sitemap=wpseo_news last; ## Local SEO rewrite ^/locations\.kml$ /index.php?sitemap=wpseo_local_kml last; rewrite ^/geo-sitemap\.xml$ /index.php?sitemap=wpseo_local last; ## Video SEO rewrite ^/video-sitemap\.xsl$ /index.php?xsl=video last; }