• 人生,不能用时间去衡量

解决wordpress中XML站点地图出现的404错误

WordPress 刚刚 1794次浏览 0个评论

我们在使用Yoast SEO或者All in One SEO等插件的时候,有时会发现它们生成的 XML站点地图(XML Sitemap)网址出现404错误。这是则可能需要添加服务器级别的伪静态重写规则。

添加重写规则

目前主流的服务器环境为 Apache 和 Nginx,不同的环境添加的规则会不一样,如果不确定使用哪个,请与您的主机提供商联系。

使用Apache服务器

您应该编辑网站根目录的 .htaccess文件,并在下面的主要WordPress重写规则之前添加以下代码。如果您不确定如何执行此操作,则联系主机提供商可以为您提供帮助。

如果你的WordPress是安装在更目录,可以使用下面的规则:

# Yoast 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?yoast-sitemap-xsl=$1 [L]
# END Yoast SEO - XML Sitemap Rewrite Fix

如果您在子文件夹中运行WordPress,则可能必须修改此设置。例如,如果您在名为/wordpress/的子文件夹中运行它, 就需要使用下面的规则:

# WordPress SEO - XML Sitemap Rewrite Fix - for subfolder install
RewriteEngine On
RewriteBase /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

添加了规则以后,可能需要重启一下 Apache,以便规则生效。

使用Nginx服务器

这是您在NGINX服务器上可能需要的重写规则的示例。如果不确定在何处添加这些规则,请联系您的网络主机或服务器管理员以获取帮助。

如果你仅仅安装了 Yoast SEO 插件,只需要添加在站点的Nginx配置文件中,在WordPress伪静态规则的下方添加以下规则即可:

# Rewrites for Yoast SEO XML Sitemap
rewrite ^/sitemap_index.xml$ /index.php?sitemap=1 last;
rewrite ^/([^/]+?)-sitemap([0-9]+)?.xml$ /index.php?sitemap=$1&sitemap_n=$2 last;

如果你使用的是宝塔面板可以按照下图所示添加:

解决wordpress中XML站点地图出现的404错误
添加完成后,重启一下 Nginx,并在网站后台 设置 – 固定链接 界面,重新保存一下设置。
这样,xml地图就能正常显示了。
喜欢 (1)
[]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址