Как определить, что программа чтения каналов обращается к моей странице?
-
08-07-2019 - |
Вопрос
Я хотел бы предоставить другой контент из одного URL-адреса в зависимости от того, является ли пользователь браузером или читателем RSS (следовательно, избегая URL-адреса example.com/feed). Таким образом, www.example.com/posts вернет (X) HTML-страницу в браузер, а RSS-канал - в программу чтения каналов.
Какой архитектурно наиболее подходящий способ сделать это?
PS Как это для вопроса софтбола ...:)
Решение
Я не уверен, что это возможно во всех ситуациях. Рассмотрим пользователя, который использует RSS-ридер Safari, если он использует одну и ту же строку идентификатора браузера при загрузке RSS-канала, как бы вы различали два режима?
Я бы на самом деле пересмотрел этот подход, нет ничего плохого в отдельном URL фида.
Другие советы
Позвольте мне представить вам пользовательский агент HTTP-заголовок , Он будет содержать идентификационную строку для клиента, обращающегося к вашей странице. Это может быть подделка, но вы просто не можете быть на 100% уверены, что это RSS-ридер или браузер.
Кроме того, читатели RSS могут отправлять заголовки Accept для типов содержимого rss, которые вы можете использовать для реализации содержимого переговоры ( MultiViews в Apache).
Но поскольку не существует верного пути к пожару, вам лучше отказываться от обслуживания HTML чаще, чем RSS, или, что еще лучше, делать то же, что и все остальные, и предоставлять другой канал для RSS.