2014-08-27 1 views
4

Согласно Search Engine Land и многим другим источникам, если вы разрабатываете мобильный контент Dynamic Serving для своего сайта, вы должны установить HTTP-заголовок Vary: User-Agent.Где и как установить Vary: HTTP-заголовок User-Agent

Это делается в файле .htaccess или в другом месте? Это было бы моим первым делом, и я бы очень признателен за помощь и даже за пример. После поиска, я сузил его до мета-тегов или htaccess, однако, я мог ошибаться.

Ваша помощь очень ценится. Спасибо

+0

Голосование за получение ваших требований. Там не было много реализации по этой теме, и через сообщение в блоге было бы большой помощью для новых/промежуточных веб-мастеров и разработчиков. – berg37

ответ

3

Вы не установите это. Это просто, если вы обслуживаете другой контент с одного и того же URL-адреса на основе свойств клиента, который подключается к вам (это то, что является динамической службой), вы также должны вернуть этот заголовок, чтобы поисковые системы знали, что это не одна истинная версия страницы, на которую они смотрят, но только одна из зависимых от User-Agent версий.

Таким образом Google может сканировать ваш сайт с помощью нескольких пользовательских агентов, а также кэшировать и индексировать каждый из них отдельно, поэтому клиенты на разных платформах с большей вероятностью найдут нужную информацию.

Вы должны использовать этот заголовок, если вы используете другой контент с одного и того же URL-адреса в зависимости от заголовка. Итак, сначала вам нужно создать страницу, на которой на самом деле есть другой вывод, основанный на пользовательском агенте, и если у вас есть это, вы можете оптимизировать его, установив заголовок ответа. Вы можете сделать это с помощью вызова функции header в PHP:

header('Vary: User-Agent'); 

Вы можете сделать это в Htaccess тоже, но это хорошая идея, чтобы сделать это только для тех страниц, которые на самом деле имеют различное содержание. Поэтому, на мой взгляд, это так же легко сделать в PHP.

+1

Отлично. Должен ли я видеть Vary: User-Agent, когда я проверяю заголовки http с помощью службы, например http://www.delorie.com/web/headers.html? Я добавил его в php-код и протестировал его, однако он не появился. Как еще я смогу проверить это? – NotJay

+1

Откройте Chrome, нажмите F12 (откроются инструменты Dev), перейдите на вкладку сети. Теперь откройте свою страницу (в обычной адресной строке), и вы сможете просмотреть запрос на вкладке «Сеть». Просто выберите основной запрос для страницы, и его детали появятся, включая заголовки ответов. – GolezTrol

+0

Благодарим за помощь. – NotJay

2

Если вы используете PHP для создания своих страниц, вы можете использовать функцию header, как это:

header('Vary: User-Agent'); 

Или, если вы находитесь на сервере Apache, вы можете использовать mod_headers модуль. Как это:

Header: set Vary User-Agent 

Обратите внимание, что если вы пришлете различное содержание на основе других заголовков тоже, то вы должны приложить их другие заголовки в Варах заголовок вашего ответа.

+0

Хотя это вопрос Apache, если вы пришли сюда, ища решение в эквиваленте ASP.NET/IIS, ответ будет ... Response.AppendHeader («Vary», «User-Agent»); – MiscellaneousUser