我正在尝试创建一个将自动更新的站点地图.我已经做了类似于我的RSS提要的内容,但是这个网站地图拒绝工作.你可以在
http://designdeluge.com/sitemap.xml看到它,我认为主要的问题是它不能识别PHP代码.这里是完整的来源:
<?PHP include 'includes/connection.PHP'; header("Content-type: text/xml"); echo '<?xml version="1.0" encoding="UTF-8" ?>'; ?> <urlset xmlns="http://www.google.com/schemas/sitemap/0.84" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.google.com/schemas/sitemap/0.84 http://www.google.com/schemas/sitemap/0.84/sitemap.xsd"> <url> <loc>http://designdeluge.com/</loc> <lastmod>2010-04-20</lastmod> <changefreq>weekly</changefreq> <priority>1.00</priority> </url> <url> <loc>http://designdeluge.com/about.PHP</loc> <lastmod>2010-04-20</lastmod> <changefreq>never</changefreq> <priority>0.5</priority> </url> <?PHP $entries = MysqL_query("SELECT * FROM Entries"); while($row = MysqL_fetch_assoc($entries)) { $title = stripslashes($row['title']); $date = date("Y-m-d",strtotime($row['timestamp'])); echo " <url> <loc>http://designdeluge.com/".$title."</loc> <lastmod>".$date."</lastmod> <changefreq>never</changefreq> <priority>0.8</priority> </url>"; } ?> </urlset>
问题是动态网址(例如从数据库中提取的URL)未生成,并且站点地图将无法验证.谢谢!
编辑:现在,我只是试图让代码本身工作.我在本地测试服务器上设置为PHP文件.上面的代码正在被使用.现在,屏幕上或源文件中都没有显示任何内容.我在想我做了一个语法错误,但我找不到任何东西.任何和所有的帮助是赞赏!
如果您查看生成的sitemap.xml(例如,在浏览器中使用视图源),您将看到:
原文链接:https://www.f2er.com/php/140192.html<?PHP header('Content-type: text/xml'); ?> <?xml version="1.0" encoding="UTF-8" ?> <urlset xmlns="http://www.google.com/schemas/sitemap/0.84" xmlns:xsi="http:/ ...
该输出中存在的<?PHP表示不会解释PHP代码.
这可能是因为您的网络服务器不能将.xml识别为应包含PHP代码的文件的扩展名.
至少两个可能的解决方案:
>重新配置您的服务器,所以XML文件通过PHP解释器(可能不是一个好主意:这可能会导致现有文件的问题!)
>将您的站点地图的扩展名更改为sitemap.PHP,以便您的服务器进行解释.
有一个sitemap.PHP文件,其中包含代码
>并使用RewriteRule,所以sitemap.xml URL实际上指向sitemap.PHP文件
这样,您将会有sitemap.xml网址,这是很好的(必需的),但是由于代码将在sitemap.PHP中,所以会被解释.