先确认问题落在哪一层
同一个CMS identifier在主站正常,切到另一个Store就404。缓存不是第一嫌疑,先验证页面是否真正分配给该Store。
查询cms_page_store,确认page_id关联目标store_id或store_id=0(All Store Views)。页面还必须is_active=1。
检查目标Store是否存在另一个相同identifier页面。多个可匹配页面会导致加载歧义,按语言拆分时每个页面只分配明确Store。
SELECT page_id,identifier,title,is_active FROM cms_page WHERE identifier='shipping-policy';
SELECT cps.page_id,cps.store_id,s.code FROM cms_page_store cps JOIN store s ON s.store_id=cps.store_id WHERE cps.page_id IN (:page_ids);
bin/magento config:show web/url/use_store实际修复
- 带Store Code的URL要确认web/url/use_store以及Base URL路径。反向代理若剥离或重复添加Store Code,会在CMS路由前得到错误path。
- 修正分配后清full_page和block_html;用Host与Store Cookie都固定的请求验证,避免浏览器残留Cookie把请求送到另一个Store。
怎样才算修好
在每个目标Store用无痕请求页面,状态200、标题与语言正确;未分配的Store应保持404而不是错误回退。

