何时需要在.htAccess中更改标题未设置

时间:2021-02-26 作者:klewis

今晚,我刚刚在WordPress环境中进行了一次重大更新,更新到最新版本,并在网站上发现了一个内部服务器错误。然后,我进行了全面检查,以了解问题的来源。我想我找到了凶手。。。当我在我的中注释掉下面一行时。htaccess文件,该站点返回。。。

# SGO Unset Vary
  Header unset Vary
# SGO Unset Vary END
我们在什么情况下need Header unset Vary 在我们的。htaccess文件?

2 个回复
最合适的回答,由SO网友:MrWhite 整理而成

Header unset Vary
这可能是一个解决方案bug in Apache (#58231)<当Vary: Host 已设置HTTP响应头。Apache在查询HTTP_HOST mod\\u重写中的服务器变量RewriteCond 指令(或Apache表达式)。

尽管这可能是缓存中的一个bug,而不是Apache中的bug。Apache的行为是;“按设计”;和aVary: Host 标头不应阻止缓存工作,因为这实际上是默认行为。

但是,如果您根据请求的其他元素(例如Accept, Accept-LanguageUser-Agent HTTP请求头),然后Vary 应适当设置HTTP响应标头,而不应简单地取消设置。

然而,我很惊讶这个指令会导致错误。这意味着未安装mod\\u标头,即;不太可能;。但是,您可以对此进行保护,并在<IfModule> 指令。例如:

# SGO Unset Vary
<IfModule mod_headers.c>
  Header unset Vary
</IfModule>
# SGO Unset Vary END
(从您问题中的指令缩进来看,几乎是这样的<IfModule> 包装器丢失?)

现在Header 仅当安装了mod\\u标头时,才会处理指令。

SO网友:clayRay

如果您的站点在某个时候从SiteGround迁移到其他主机,那么您可能会遇到此问题。

代码已添加到。SiteGround Optimizer插件的htaccess。它缺少条件,因为SiteGround hosting始终启用mod\\u headers模块。

如果站点不再位于SiteGround上,我建议安装其他缓存插件,例如W3 Total Cache,因为SG优化器依赖于SiteGround特定的服务器端功能才能正常工作。

删除SG Optimizer后,我将检查中是否没有剩余的代码。SG Optimizer添加的htaccess。明确删除# SGO Unset Vary 阻止,但您可能希望离开# HTTPS forced by SG-Optimizer 如果要继续强制,请阻止https:// 链接。

相关推荐

在WordPress.com托管的htaccess在哪里?

我希望上传一个htaccess文件或修改现有的htaccess,假设WordPress正在使用一个htaccess文件。我想要实现的就是拒绝访问我的WordPress站点,并允许特定的IP。我知道如何做到这一点,并且已经在其他地方实现了这一点,但还没有在WordPress上完成这种类型的配置我通过WordPress购买了我的Word press主机,并将SFTP连接到他们提供的详细信息。它似乎连接到htdocs目录,通常我希望将htaccess文件放在那里。然而,将htaccess放在这里并不起作用。它没