【问题标题】:Where and How to set Vary: User-Agent HTTP Header设置位置和方式不同:用户代理 HTTP 标头
【发布时间】:2014-10-21 11:48:53
【问题描述】:

根据Search Engine Land 和许多其他来源,如果您正在为您的网站设计“动态服务”移动内容,您应该将 HTTP 标头设置为 Vary:User-Agent。

这是在 .htaccess 文件中还是在其他地方完成的?这将是我第一次这样做,我将非常感谢帮助,甚至可能是一个例子。搜索后,我将其缩小到元标记或 htaccess,但是,我可能是错的。

非常感谢您的帮助。谢谢

【问题讨论】:

  • 投票支持您的索赔。该主题尚未得到大量实施,通过博客文章将对新/中级网站管理员和开发人员有很大帮助。

标签: php .htaccess http meta vary


【解决方案1】:

你没有设置这个。只是,如果您根据连接到您的客户端的属性(这就是动态服务)从同一个 url 提供不同的内容,您还应该返回此标头,以便搜索引擎知道它不是一个真正的版本他们正在查看的页面,但只是依赖于 User-Agent 的版本之一。

这样,Google 可以使用多个用户代理抓取您的网站,并对每个用户代理分别进行缓存和索引,因此不同平台上的客户更有可能找到正确的信息。

如果您根据标头从同一网址提供不同的内容,则应使用此标头。 所以首先,你需要根据用户代理构建一个实际上有不同输出的页面,当你有这个时,你可以通过设置响应头来优化它。你可以通过调用 PHP 中的header 函数来做到这一点:

header('Vary: User-Agent');

您也可以在 htaccess 中执行此操作,但最好只对那些实际上具有不同内容的页面执行此操作。所以在我看来,用 PHP 来做同样容易。

【讨论】:

  • 太棒了。当我使用 delorie.com/web/headers.html 之类的服务检查 http 标头时,我应该能够看到 Vary: User-Agent 吗?我将它添加到 php 代码中并对其进行了测试,但是它没有出现。我还能如何测试这个?
  • 打开 Chrome,按 F12(开发工具将打开),转到网络选项卡。现在打开您的页面(在普通地址栏中),您可以在“网络”选项卡中检查请求。只需选择页面的主要请求,它的详细信息就会显示出来,包括响应头。
  • 感谢您的帮助。
【解决方案2】:

如果您使用 PHP 生成页面,可以使用 header 函数,如下所示:

header('Vary: User-Agent');

或者,如果您使用的是 apache 服务器,则可以使用 mod_headers 模块。像这样:

Header: set Vary User-Agent

请注意,如果您也根据其他标头发送不同的内容,那么您应该将这些其他标头附加到响应的 Vary 标头中。

【讨论】:

  • 虽然这是一个 Apache 问题,但如果您在寻找 ASP.NET/IIS 等效解决方案时来到这里,答案是...... Response.AppendHeader("Vary", "User-代理");
猜你喜欢
  • 1970-01-01
  • 2010-09-14
  • 1970-01-01
  • 1970-01-01
  • 2017-01-03
  • 2013-10-27
  • 2016-08-18
  • 2011-06-16
  • 1970-01-01
相关资源
最近更新 更多