我们目前在生产主机上间歇性地看到这种情况。谷歌搜索控制台向我们展示了重复的内容,提醒我们注意这个问题。
这个特定站点具有 alpha、beta、stage 和 production 实例,它们具有相同的代码和数据库恢复功能,我们已经能够确认问题是间歇性的。缓存清除和页面加载通常会生成干净的 url,但有时我们会看到 /index.php/ 在 URL 的开头注入。
确认缓存中问题的内容:
mysql> select count(*) from cache_page where data like '%/index.php/%';
mysql> select count(*) from cache_render where data like '%/index.php/%';
检查cache_page 表,我可以确认Drupal 已经用/index.php/ 缓存了许多页面。此外,检查cache_render,有缓存的菜单实例与/index.php/。此外,发生这种情况时,对 url('') 的 twig 调用会返回 /index.php/。
运行清除缓存,访问页面以启动缓存,我现在看到零结果并且 url('') 不再返回 /index.php/。在包含 /index.php/ 的运行与不包含的运行之间没有代码部署,也没有模块更改。
需要进一步研究。