sitemap 404

All in One SEO Pack插件sitemap.xml 404的解决办法

相信很多人在给网站生成sitemap.xml文件的时候都是使用的Google XML Sitemaps这款插件,奶爸之前也是,后来发现All in One SEO Pack的功能里面实际上自带了一个sitemap生成的组件,就没有使用Google XML Sitemaps来生成了。

刚才突然发现sitemap.xml 404了,切换到Google XML Sitemaps同样是404,不知道是什么原因,这两天就折腾了文件缓存(看了下规则,应该就是xml设置了缓存8天导致的404,把xml排除出去就可以了。)下面说下sitemap.xml文件404的解决办法

出现404的情况基本上都是伪静态配置的问题。

例如写这篇文章的时候突然发现原来是我折腾文件缓存的时候把xml文件也缓存了,去掉缓存规则就可以了。

sitemap.xml 404的解决办法

保险的方法是给sitemap.xml添加伪静态规则

以下两个伪静态规则测试都有效。

Google XML Sitemaps这款插件推荐的nginx规则

rewrite ^/sitemap(-+([a-zA-Z0-9_-]+))?\.xml$ "/index.php?xml_sitemap=params=$2" last;
rewrite ^/sitemap(-+([a-zA-Z0-9_-]+))?\.xml\.gz$ "/index.php?xml_sitemap=params=$2;zip=true" last;
rewrite ^/sitemap(-+([a-zA-Z0-9_-]+))?\.html$ "/index.php?xml_sitemap=params=$2;html=true" last;
rewrite ^/sitemap(-+([a-zA-Z0-9_-]+))?\.html.gz$ "/index.php?xml_sitemap=params=$2;html=true;zip=true" last;

All in One SEO Pack推荐的规则

#rewrite rules for AIOSEOP XML Sitemap
rewrite ^/sitemap.xml$ /index.php?aiosp_sitemap_path=root last;
rewrite ^/sitemap_(.+)_(\d+).xml$ /index.php?aiosp_sitemap_path=$1&aiosp_sitemap_page=$2 last;
rewrite ^/sitemap_(.+).xml$ /index.php?aiosp_sitemap_path=$1 last;
rewrite ^/sitemap.xml.gz$ /index.php?aiosp_sitemap_path=root.gz last;
rewrite ^/sitemap_(.+)_(\d+).xml.gz$ /index.php?aiosp_sitemap_path=$1.gz&aiosp_sitemap_page=$2 last;
rewrite ^/sitemap_(.+).xml.gz$ /index.php?aiosp_sitemap_path=$1.gz last;

Nginx伪静态规则添加方法

只需要将上面的伪静态规则添加到你虚拟主机的nginx配置文件,然后重启nginx即可。

LNMP一键包的用户,直接添加到include rewrite/wordpress.conf;这串代码上面。

宝塔面板用户,在你网站的伪静态规则里面添加上面的代码即可。

其他注意事项

如果你使用了缓存插件,那么记得把下面这两个页面都添加到例外,以免出现游客访问缓存页面出错的情况。

sitemap.xml
sitemap.xsl

5/5 - (2 votes)
滚动至顶部