Как кодировать собственную ссылку, когда в ленте RSS есть строка запроса - PullRequest
2 голосов
/ 06 июля 2011

Я динамически генерирую RSS-канал для некоторых своих страниц.

Проблема заключается в том, что страницы содержат строку запроса в URL-адресе для создания содержимого.Когда я помещаю этот URL в тег, это больше не действует

Этот пример кода имеет ту же проблему и может быть проверен здесь

<rss version="2.0"  xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>RSS Feed</title>
    <link>http://localhost/?id=1&title=sample</link>
    <atom:link href="http://localhost/?id=1&title=sample" rel="self" type="application/rss+xml" />
    <description>Sample Items for SO</description> 
    <language>en</language>
    <copyright></copyright>
    <webMaster>website@localhost (webmaster)</webMaster>
    <ttl>5</ttl>
    <item>
        <title>Page 1</title>
        <link>http://localhost/page1</link>
        <guid>http://localhost/page1</guid>
        <description></description>
        <pubDate>Tue, 25 Jan 2011 11:44:41 GMT</pubDate>
    </item>
  </channel>
</rss>

Проблема, похоже, связана со вторым параметром строки запроса.Однако если я закодирую URL-адрес полностью, он недействителен.

Я использую asp.net MVC для создания страницы и Request.Url для получения текущего URL-адреса фидов.Существует более 30 возможных параметров, поэтому использование перезаписи URL для решения проблемы не является жизнеспособным решением.

1 Ответ

1 голос
/ 08 июля 2011

Решением было закодировать только строку запроса, а не весь URL. Это сделало канал действительным.

...