* @throws FatalException * @inheritdoc */ public function preProcess() { global $conf; if($conf['sitemap'] < 1 || !is_numeric($conf['sitemap'])) { throw new FatalException(404, 'Sitemap generation is disabled'); } $sitemap = \Sitemapper::getFilePath(); if(\Sitemapper::sitemapIsCompressed()) { $mime = 'application/x-gzip'; } else { $mime = 'application/xml; charset=utf-8'; } // Check if sitemap file exists, otherwise create it if(!is_readable($sitemap)) { \Sitemapper::generate(); } if(is_readable($sitemap)) { // Send headers header('Content-Type: ' . $mime); header('Content-Disposition: attachment; filename=' . utf8_basename($sitemap)); http_conditionalRequest(filemtime($sitemap)); // Send file //use x-sendfile header to pass the delivery to compatible webservers http_sendfile($sitemap); readfile($sitemap); exit; } throw new FatalException(500, 'Could not read the sitemap file - bad permissions?'); } }