使用PHP / Apache

时间:2017-03-11 01:18:29

标签: php apache http header canonical-link

我正在尝试使用PHP输出HTTP标头,根据Google的指南指定规范网址:Specify a canonical link in your HTTP header,格式如下:

Link: <http://www.example.com/downloads/white-paper.pdf>; rel="canonical"

然而,正在删除响应标头,结果为

Link: ; rel="canonical"

作为测试,我删除了左/右尖括号,结果是:

Link: http://www.example.com/downloads/white-paper.pdf; rel="canonical"

这让我觉得一些安全措施(PHP / Apache / Apache模块??)将标题内容视为HTML并且“帮助”#39;通过剥离它。

需要在标题中指定规范而不是简单地在&lt; head&gt;中指定规范的原因是文件是PDF。

这是一些测试代码来说明我在做什么:

<?php
header("link: <https://www.somedomain.com/>; rel=\"canonical\"");
print "this is a test";?>

apache中加载的模块列表是:

  

core_module(静态)    log_config_module(静态)    logio_module(静态)    version_module(静态)    mpm_prefork_module(静态)    http_module(静态)    so_module(静态)    alias_module(共享)    auth_basic_module(共享)    authn_file_module(共享)    authz_default_module(共享)    authz_groupfile_module(共享)    authz_host_module(共享)    authz_user_module(共享)    cgi_module(共享)    deflate_module(共享)    dir_module(共享)    env_module(共享)    expires_module(共享)    mime_module(共享)    negotiation_module(共享)    pagespeed_module(共享)    php5_module(共享)    reqtimeout_module(共享)    rewrite_module(共享)    setenvif_module(共享)    ssl_module(共享)    status_module(共享)

请注意,未加载suhosin,因此可以排除.. 任何帮助确定可能正在修改标题的内容。

更新:我在几台不同的服务器上试过这个,到目前为止结果是一样的。

1 个答案:

答案 0 :(得分:0)

这个问题的答案是我用来检查标题的工具是次要的(可能在将它们显示为HTML之前没有正确地转义标题):

特别是Chrome扩展程序&#34; CDN标题&amp;饼干&#34;以及我找不到的一些在线检查器。

Chrome的默认F12标题检查员会正确显示回复标题,如果我浪费了任何人的时间,我会道歉。