我应该使用什么文件扩展名来动态RSS

时间:2011-11-03 19:56:45

标签: php .htaccess rss

我目前正在开发一个动态RSS源,它将自动从MySQL数据库中提取文章。代码在

之下
<?php 

//Include the post retreival script
require_once '../phpScripts/rss_db_setup.php';

//Set the content type
header('Content-type: text/xml');

//Set up the RSS feed information
echo '<?xml version="1.0" encoding="ISO-8859-1"?>'.
 '<rss version="2.0">'.

 '<channel>'.
 '<title>Company Name</title>'.
 '<link>http://www.company.ca</link>'.
 '<description></description>'.
 '<category></category>';

//Retreive posts from the database
$rssData = new rssData();
echo $rssData->generateFeed($dbcon);

//Close the feed
echo '</channel></rss>';

?>

我想知道这个文件是应该保存为.xml还是.php?我已将以下行添加到我的.htaccess文件中,但并不完全理解它是如何工作的

AddType application/x-httpd-php .xml

这是一种正确的方法吗?或者我应该使用另一个htaccess函数,如modRewrite,还是每天使用CRON作业生成一个新的.xml?

2 个答案:

答案 0 :(得分:7)

RSS不需要扩展名。它不关心网址是/feed.php /feed.xml还是/feed/。它不像你自己的硬盘上的文件。 HTTP发送内容类型标头以指定它是什么类型的文件。

然而,它(正式)需要正确的内容类型标题。您可以在代码中指定text / xml,这应该是application / rss + xml。

如果在服务器上的其他位置使用静态xml文件,则使用AddType可能会出现问题。 PHP会在每个xml文件的开头部分阻塞,给出一个很好的错误消息,导致xml无效。

答案 1 :(得分:1)

使用AddType application/x-httpd-php .xml行,Apache将能够提供包含一些PHP代码的XML文件。因此,您可以将此文件另存为.xml,将解释PHP代码

也许您应该添加缓存管理器,以避免在没有新文章时生成相同的Feed?