在Nginx环境下WordPress使用插件无法生成sitemap.xml

问题描述

在Nginx环境下配置博客网站时,发现使用任何SEO插件都无法生成sitemap.xml文件。

在网络上找,发现基本都是修改.htaccess文件的,可这是Apache httpd服务器使用的方式,搞了好久都没解决,后面自己捣鼓出了一种解决方案。

解决方案

最后发现,在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;

如果使用的是宝塔面板,可以按如下步骤操作:

  1. 成功登录并进入宝塔面板,点击“网站”
  2. 点击对应网站的【设置】按钮
  3. 点击【伪静态】按钮
  4. 复制上面代码,并追加到文件框中
  5. 点击【保存】按钮

做完以上几步刷新wordpress控制台页面,重新在插件中生成sitemap即可。

如果使用的不是宝塔面板的话,也可以直接修改Nginx的配置文件,同样添加以上代码重启即可。

注意事项

在使用宝塔面板时,上述代码追加到“伪静态”中如果不起作用,请尝试到“配置文件”中追加一次。

在修改配置文件前,请一定要提前做好备份,防止出现修改失误造成严重后果。

上一篇
下一篇