问题描述
在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;
如果使用的是宝塔面板,可以按如下步骤操作:
- 成功登录并进入宝塔面板,点击“网站”
- 点击对应网站的【设置】按钮
- 点击【伪静态】按钮
- 复制上面代码,并追加到文件框中
- 点击【保存】按钮
做完以上几步刷新wordpress控制台页面,重新在插件中生成sitemap即可。
如果使用的不是宝塔面板的话,也可以直接修改Nginx的配置文件,同样添加以上代码重启即可。
注意事项
在使用宝塔面板时,上述代码追加到“伪静态”中如果不起作用,请尝试到“配置文件”中追加一次。
在修改配置文件前,请一定要提前做好备份,防止出现修改失误造成严重后果。