Какое расширение файла я должен использовать для динамического RSS

#php #.htaccess #rss

#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 каждый день или около того?

Комментарии:

1. все имена файлов не имеют смысла, важны заголовки и содержимое

2. .dynamicrssrenderedviaphp . Я, конечно, шучу. 1 к @Dagon.

Ответ №1:

RSS не нуждается в расширении. Неважно, является ли URL /feed.php /feed.xml или даже просто /feed/ . Это не похоже на файлы на вашем собственном жестком диске. HTTP отправляет заголовок content-type, чтобы указать, что это за файл.

Однако (официально) требуется правильный заголовок content-type. Вы указываете text / xml в своем коде, который официально должен быть application / rss xml.

Использование AddType может быть проблемой, если вы используете статические XML-файлы в другом месте на сервере. PHP будет блокировать часть в начале каждого XML-файла, выдавая хорошее сообщение об ошибке, приводящее к недопустимому xml.

Комментарии:

1. Спасибо за обновление. Не был уверен, что читатели RSS столкнутся с ошибками. Не используя XML в другом месте, но, вероятно, хорошая идея в любом случае для будущих целей

2. Вы могли бы просто поместить файл в папку с именем ‘feeds’ или что-то в этом роде и поместить туда htaccess и XML-файл. Таким образом, htaccess влияет только на эту папку, а не на остальные. Я также проверил свой собственный список каналов; примерно 40% не имеют расширения, 40% имеют расширение xml, остальные используют .rss или .php, некоторые даже с querystring .

Ответ №2:

С помощью этой AddType application/x-httpd-php .xml строки Apache сможет обслуживать XML-файлы, содержащие некоторый PHP-код внутри. Таким образом, вы можете сохранить этот файл как .xml, код PHP будет интерпретирован

Возможно, вам следует добавить менеджер кэша, чтобы избежать создания одного и того же канала, когда нет новой статьи?

Комментарии:

1. Отлично! именно то, что я хотел знать, не уверен, как добавить диспетчер кэша, но рассмотрю это