我有一个文件,其中包含一个名为的文件,sitemap.html
并且在站点地图中,我有以下代码:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
<url>
<loc><?php echo SITE_URL . '/'; ?></loc>
<changefreq>monthly</changefreq>
<priority>1.00</priority>
</url>
<?php foreach ($this->data->content as $content): ?>
<url>
<loc><?php echo SITE_URL . $content->permalink; ?></loc>
<lastmod><?php echo date("Y-m-d", $content->publish_date); ?></lastmod>
<changefreq>monthly</changefreq>
<priority><?php echo $content->sitemap_index; ?></priority>
</url>
<?php endforeach; ?>
</urlset>
一切似乎都很好,但我收到一个错误 500,它说:
PHP 解析错误:语法错误,第 1 行的 sitemap.html 中出现意外的“版本”(T_STRING)
如您所见,我正在使用<?xml
而不是<?php
为什么它试图将其解析为 PHP?
起初,我认为是魔术引号引起了问题,但是当我执行get_magic_quotes_gpc()的 var_dump 时,我得到bool(false)
了魔术引号甚至没有打开。
另外,在我的php.ini
,我看到那magic_quotes
是OFF
。
作为修复它的替代方法,我将第一行替换为以下内容:
<?php echo '<?xml version="1.0" encoding="UTF-8"?>'; ?>
但我仍然对正在发生的事情感到好奇。
我在同一台服务器上托管了其他网站(PHP 版本 5.4.45),但我没有在其他网站的站点地图上看到 PHP 解析错误...
知道可能导致此错误的原因是什么吗?