没有所谓的捷径
一切都是时间最平凡的累积

如何给网站添加Vary HTTP标头 手机站代码适配

本文最后更新:2019年8月5日,已超过1724天未更新,如果文章内容失效,请留言反馈本站。

手机站与PC站的配置方式有3种,分别是跳转适配,代码适配和自适应,不同配置方式优化的方法也有所不同。

根据《百度移动搜索建站优化白皮书》,从代码层面考虑有两种:

1、添加Vary HTTP标头

2、在pc的响应的head中添加:

<meta name="applicable-device" content="pc">

在移动的响应的head中添加:

<meta name="applicable-device" content="mobile">

详细优化说明可以参考:http://ziyuan.baidu.com/college/courseinfo?id=156

那么如何为网站响应的HTTP标头添加Vary呢?

服务器
服务器有足够的权限,具体说明可以参考官网的建议:http://ziyuan.baidu.com/college/articleinfo?id=717

iis6添加方式:
 1.打开IIS找到需要添加的站,右键属性。
 2.点击HTTP头,找到自定义HTTP头,点击添加,在弹出的框里面输入:自定义 HTTP头名(C)下面的框里面填写:Vary 在自定义HTTP 头值(U)下面的框里面填写User-Agent 。点击确定,在点击确定,完毕。

iis7设置

nginx设置:

在配置节点里面加。

add_header  Vary 'User-Agent';

apache设置:

可以用.htaccess,参考下面虚拟主机方式设置规则。

虚拟主机

由于权限有限,可以通过代码方式。在需要的页面加。

header("Vary:User-Agent",false);

实现如下:

<?php
header("Vary:User-Agent",false);
phpinfo();
?>

效果如下:

iis7以上版本

可以通过web.config来设置,将以下代码保存为web.config,然后上传到网站根目录。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
 <httpProtocol>
 <customHeaders>
<remove name="Vary"></remove>
<add name="Vary" value="User-Agent"></add>
</customHeaders>
</httpProtocol>
</system.webServer>

</configuration>

如果原本网站根目录有web.config文件,在原来文件<system.webServer>标签后添加

 <httpProtocol>
 <customHeaders>
<remove name="Vary"></remove>
<add name="Vary" value="User-Agent"></add>
</customHeaders>
</httpProtocol>

apache添加方式

大多数主机商都安装了mod_headers,在.htaccess文件中添加

 <IfModule mod_headers.c>
#如果需要指定文件,可以把<FilesMatch>前面的#去掉
#<FilesMatch ".(php|js|css|xml|gz|html)$">
Header append Vary "User-Agent"
#</FilesMatch>
</IfModule>

知识扩展:设置 header 指令

描述: 配置HTTP响应头

句法: Header [condition] set|append|add|unset|echo header [value] [env=[!]variable]

该指令可以替换,合并或删除HTTP响应头。在内容处理程序和输出过滤器运行之后,头文件被修改,允许修改传出头文件。

可选条件 onsuccess 或者 always。它确定应该操作哪个内部头表。onsuccess代表 2xx状态码而 always 代表所有状态码(包括2xx)。

它执行的动作由第二个参数决定。这可以是以下值之一:

set

响应标题被设置,用这个名字替换任何以前的标题。该值可以是格式字符串。

append

响应头被追加到任何现有的相同名称的头。当一个新的值被合并到一个已经存在的头上时,它将与逗号分开。这是给标题多个值的HTTP标准方式。

add

响应标题被添加到现有的标题集,即使这个标题已经存在。这可能会导致两个(或更多)标题具有相同的名称。这可能会导致不可预见的后果,应该使用“附加”来代替。

unset

如果该名称存在,则会删除该名称的响应标题。如果有多个相同名称的标题,则全部将被删除。

echo

带有这个名字的请求头在回应头中回显。标题可能是一个正则表达式。

该参数后面跟着一个 header 名称,可以包含最后的冒号,但不是必需的。对于 setappendaddunset,大小写是忽视的,但 echoheader 名称是大小写敏感的,并且可以是正则表达式。

» 站长码字辛苦,有用点个赞吧,也可以打个
» 若转载请保留本文转自:豫章小站 » 《如何给网站添加Vary HTTP标头》
» 本文链接地址:https://blog.mydns.vip/1591.html
» 如果喜欢可以: 点此订阅本站 有需要帮助,可以联系小站
赞(0) 打赏 【豫章小站原创文章】
声明:本站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,若涉及侵权请及时告知,将会在第一时间删除,联系邮箱:contact@mydns.vip。文章观点不代表本站立场。本站原创内容未经允许不得转载,或转载时需注明出处:豫章小站 » 如何给网站添加Vary HTTP标头
分享到: 更多 (0)

评论 抢沙发


  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

智慧源于勤奋,伟大出自平凡

没有所谓的捷径,一切都是时间最平凡的累积,今天所做的努力都是在为明天积蓄力量

联系我们赞助我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏