英文站Sitemap里出现中文域名,或文件生成到pub却前台404。Sitemap记录本身带store_id,不能用一条记录服务所有Store。
处理步骤
步骤1:查询sitemap表,确认每个Store有独立记录、sitemap_filename和sitemap_path。后台创建时必须选择正确Store View。
步骤2:在对应Store Scope读取web/secure/base_url与web/unsecure/base_url。Cron/CLI运行时若自定义代码未模拟Store,可能总用默认域名。
步骤3:sitemap_path是Magento安装目录下的可写相对目录,Web服务器URL必须能映射到该文件。生成成功但404时检查DocumentRoot、Nginx location和发布容器持久卷。
步骤4:删除错误文件前先保留副本,按Store重新生成。robots.txt或搜索引擎提交的URL也要分别指向正确域名的Sitemap。
命令与数据检查
SELECT sitemap_id,sitemap_filename,sitemap_path,store_id,sitemap_time FROM sitemap ORDER BY store_id;
bin/magento config:show web/secure/base_url --scope=stores --scope-code=zh_cn
find pub -maxdepth 3 -name '*sitemap*.xml' -ls
curl -I https://cn.example/sitemap.xml上线前验证
随机抽查商品、分类、CMS URL,全部属于该Store域名并返回200;XML位置可公开访问,另一个Store的URL不会混入。
生成时间正确但内容旧时,还要检查Cron节点写入的文件系统是否与Web节点共享。

