使用htaccess“伪造”一个XML文件?

时间:2011-06-09 19:12:10

标签: php xml .htaccess sitemap

以下是我要解决的问题:我有一个动态的PHP驱动的网站,不断更新新内容,我希望我的XML站点地图能够自动保持最新状态。我看到两个选项:

  1. 编写一个查询我的数据库的php脚本,将我的所有内容和输出都发送到http://mysite.com/sitemap.xml,使用cron作业定期执行脚本。
  2. 只需将我的站点地图创建为php文件(sitemap.php),查询数据库并直接写入该文件,然后使用htaccess重写规则RewriteRule ^sitemap.xml$ sitemap.php,这样每当有人请求sitemap.xml时,他们都会被定向到php文件并获取一个新的站点地图文件。
  3. 我更倾向于使用选项#2,因为它更简单并且不需要设置cron,但我想知道如果它实际上是一个php文件,Googlebot是否会将sitemap.xml识别为无效?

    是否有人知道选项#2是否有效,如果没有,是否有更好的方法可以自动创建最新的sitemap.xml文件?我真的很惊讶我有多少麻烦...谢谢!

2 个答案:

答案 0 :(得分:5)

只需确保您的脚本生成相应的Content-Type标头。您可以使用header()完成此操作。

答案 1 :(得分:1)

Google只会获得回复的标题和正文。如果您的php脚本返回相同的标题并且与Web服务器返回的主体相同,那么PHP脚本响应或服务器的XML文件响应在技术上没有区别。如果您想自行测试请求,请使用curl -i http://example.com/检查请求的响应标头。

所以你可以安全地做到这一点,那就是mod_rewrite的设计(紧接着许多其他事情)。