2014-08-27 39 views
4

根据Search Engine Land和其他许多来源,如果您正在为您的站点设计“动态服务”移动内容,则应该设置HTTP标头Vary:User-Agent。在哪里以及如何设置Vary:用户代理HTTP标头

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

非常感谢您的帮助。谢谢

+0

为您的索赔进行投票。关于这个话题并没有太多的实施,通过博客文章对新/中级网站管理员和开发人员会有很大的帮助。 – berg37 2016-02-09 13:55:09

回答

3

你不要设置它。就是这样,如果你根据连接到你的客户端的属性(这是什么动态服务)从同一网址提供不同的内容,你也应该返回这个头,以便搜索引擎知道它不是一个真正的版本他们正在查看的页面,但只是其中一个User-Agent从属版本。

通过这种方式,Google可以使用多个用户代理抓取您的网站,并分别对它们进行缓存和索引,以便各种平台上的客户更可能找到正确的信息。

如果您根据标头提供来自同一网址的不同内容,则应使用此标头。 首先,您需要基于用户代理构建实际具有不同输出的页面,并且当您拥有此页面时,可以通过设置响应标题来优化它。你可以通过调用header功能在PHP中:

header('Vary: User-Agent'); 

你可以做到这一点htaccess的太多,但它是一个好主意,只为实际上有不同内容的页面做到这一点。所以在我看来,在PHP中做这件事很简单。

+1

太好了。当我使用http://www.delorie.com/web/headers.html这样的服务检查http标题时,是否应该能够看到Vary:User-Agent?我将它添加到php代码并进行了测试,但是,它并未出现。我还能怎么测试呢? – NotJay 2014-08-27 19:13:38

+1

打开Chrome,按F12(开发工具将打开),转到网络选项卡。现在打开您的页面(在普通地址栏中),然后您可以在网络选项卡中检查请求。只需选择该页面的主要请求,它的详细信息就会显示出来,包括响应标题。 – GolezTrol 2014-08-27 19:22:43

+0

谢谢你的帮助。 – NotJay 2014-08-27 19:50:06

2

如果你使用PHP生成网页,你可以使用header功能,像这样:

header('Vary: User-Agent'); 

或者,如果你是一个Apache服务器上,你可以使用mod_headers模块。就像这样:

Header: set Vary User-Agent 

注意,如果基于其他头发送到不同的内容也一样,那么你应该将这些其他头附加到您回应的Vary头部。

+0

尽管这是一个Apache的问题,但如果你在这里寻找ASP.NET/IIS等价的解决方案,答案是...... Response.AppendHeader(“Vary”,“User-Agent”); – MiscellaneousUser 2015-05-03 10:21:27

相关问题