当我们手动指向实时站点时,为什么WordPress重写临时站点上的绝对URL以包含临时前缀?

时间:2019-06-03 作者:Caleb Mieszko

为清晰起见进行了编辑,以显示我们复制问题所采取的步骤。

问题

当保存在编辑器中时,是什么导致登台站点上的绝对URL在登台站点的子域之前出现?

我们在SiteGround上托管的临时站点上手动编写HTML和CSS页面,保存更改,然后测试它们。然而,当我们在编辑器中保存我们的工作时,它们都会将我们正在写入的暂存子域前置到我们编写的每个绝对URL上。

复制的步骤创建实时站点的临时副本
  • 从WordPress安装并激活twenty 199默认主题http://example.combhttp://www.example.comchttps://example.comdhttps://www.example.comhttps://stagingX.example.com

    详细细分

    我们将链接目的地作为绝对URL写入页面,如以下示例所示:

    “单击此处查看<a href="https://example.com/daily-specials">Daily Specials</a>!“”

    然后我们将工作保存在编辑器中。

    如果我们立即检查临时站点上的链接,它已经指向<a href="https://staging.example.com/daily-specials"></a> 并在重新启动编辑器时显示为这样。

    虽然这不会影响任何相对URL(即。<a href="/daily-specials"></a>), 它确实会影响绝对URL的每个前缀变量。

    该站点有数千个受此影响的绝对URL。

    我们所尝试的一定是遗漏了什么,所以请随时提供任何指导或观点,无论它是否显得多余。

    我们已尝试检查服务器、主题和子主题。htaccess和功能。cPanel中的php文件,以查找任何可能导致此问题的代码(可能是我们遗漏或误解了它?)。

    我们还验证了WordPress仪表板中“设置”>“常规”下的站点URL等是否指向没有登台前缀的实时站点。

    我们已经禁用了所有插件,并切换到了2019主题,遇到了同样的问题。

    “设置”和“数据库”中的主页URL和网站URL设置为主站点,但在“更好的搜索替换”插件的“帮助”部分中,它显示这两个URL前面都有暂存子域。

  • 3 个回复
    SO网友:Rick Hellewell

    您是否检查了wp\\U选项表中的两个URL?这就是WP获取站点的基本URL的地方。

    如果将站点数据库从暂存移动到live,则可能忘记更改wp\\U选项表中的这些值。

    SO网友:Zach

    您应该使用相对链接(/path/here),而不是包含架构的绝对URI,这样可以降低出现不安全资产问题的可能性。然后,只需将wp\\u options表中的home和siteurl选项设置为正确的URL即可。

    如果它们硬编码到帖子/页面中,您可以使用wp cli或更好的search replace将内容URL替换为相对链接或正确前缀的URL,但强烈建议使用相对URI。

    SO网友:Caleb Mieszko

    这似乎是因为我们使用的插件TagDiv Composer的SiteGround暂存过程和数据库存储过程之间存在冲突,TagDiv Composer是我们使用的同一开发人员的主题的一部分。

    这一切归结为插件的自定义HTML块以编码格式存储所有这些URL以及其他内容,以及服务器在暂存数据库中查找URL时使用的重写规则(在专有代码中无法读取)。感谢大家帮助我们找到真正的问题!