Я пытаюсь вывести HTTP-заголовок, используя PHP, который задает канонический URL в соответствии с рекомендациями Google: Укажите каноническую ссылку в заголовке HTTP в следующем формате:
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 и «помогает», удаляя его.
Причину того, что каноническое должно быть указано в заголовках, а не просто в <голова> является то, что документ представляет собой 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 (общий доступ)
переговоры_module (общий доступ)
Pagespeed_module (общий доступ)
php5_module (общий доступ)
reqtimeout_module (общий доступ)
rewrite_module (общий доступ)
setenvif_module (общий доступ)
ssl_module (общий доступ)
status_module (общий)
Обратите внимание, что suhosin не загружен, так что это может быть исключено ..
Любая помощь в определении того, что может быть изменение заголовка приветствуется.
Обновление: я пробовал это на нескольких разных серверах, и результат пока один и тот же.
Ответ на этот вопрос заключается в том, что инструменты, которые я использовал для проверки заголовков, были хуже (возможно, неправильно выходили из заголовков, прежде чем показывать их в виде HTML):
Конкретно расширение Chrome «CDN Headers & Cookies «и некоторые онлайн-проверки, я больше не могу найти.
Инспектор заголовков F12 по умолчанию в Chrome правильно показывает заголовки ответов, извиняюсь, если я впустую потратил время.
Других решений пока нет …