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

Я хотел бы предоставить другой контент с одного URL-адреса в зависимости от того, является ли пользователь браузером или программой чтения RSS (следовательно, избегая URL-адреса example.com/feed). Таким образом, www.example.com/posts вернет (X) HTML-страницу в браузер, а RSS-канал - в программу чтения каналов.

Какой архитектурно наиболее подходящий способ сделать это?

PS Как это для вопроса софтбола ...:)

Ответы [ 2 ]

5 голосов
/ 19 ноября 2008

Я не уверен, что это возможно во всех ситуациях. Рассмотрим пользователя, который использует RSS-ридер Safari, если он использует одну и ту же строку идентификатора браузера при загрузке RSS-канала, как бы вы различали два режима?

Я бы действительно пересмотрел этот подход, нет ничего плохого в отдельном URL фида.

2 голосов
/ 19 ноября 2008

Позвольте мне познакомить вас с User-Agent HTTP header . Он будет содержать идентификационную строку для клиента, обращающегося к вашей странице. Это может быть подделка, но вы просто не можете быть на 100% уверены, что это программа для чтения RSS или браузер.

Кроме того, средства чтения RSS могут отправлять заголовки Accept для типов содержимого rss, которые вы можете использовать для реализации согласования содержимого ( MultiViews в Apache).

Но поскольку не существует верного пути к лучшему, вам лучше потерпеть неудачу на стороне обслуживания HTML чаще, чем RSS, или, что еще лучше, делать то же, что и все остальные, и предоставлять другой канал для RSS.

...