Как определить, что программа чтения каналов обращается к моей странице?

StackOverflow https://stackoverflow.com/questions/302572

Вопрос

Я хотел бы предоставить другой контент из одного 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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top