/ / Mit htaccess eine XML-Datei "fälschen"? - php, xml, .htaccess, sitemap

Mit htaccess eine XML-Datei "fälschen"? - PHP, XML, .htaccess, Sitemap

Hier ist das Problem, das ich zu lösen versuche: Ich habe eine dynamische PHP-basierte Website, die ständig mit neuen Inhalten aktualisiert wird. Ich möchte, dass meine XML-Sitemap automatisch auf dem neuesten Stand ist. Zwei Möglichkeiten sehe ich:

  1. Schreiben Sie ein PHP-Skript, das meine Datenbank abfragt, um alle Inhalte und Ausgaben abzurufen http://mysite.com/sitemap.xmlFühren Sie das Skript regelmäßig mit einem Cron-Job aus.
  2. Erstellen Sie einfach meine Sitemap als PHP-Datei (sitemap.php), fragen Sie die Datenbank ab und schreiben Sie direkt in diese Datei RewriteRule ^sitemap.xml$ sitemap.php Wenn jemand sitemap.xml anfordert, wird er zur PHP-Datei weitergeleitet und erhält eine neue Sitemap-Datei.

Ich würde lieber mit Option # 2 gehen, da es einfacher ist und kein Cron eingerichtet werden muss, aber ich frage mich, ob Googlebot sitemap.xml nicht als gültig erkennt, wenn es tatsächlich eine PHP-Datei ist.

Weiß jemand, ob Option # 2 funktionieren würde und obnicht, ob es eine bessere Möglichkeit gibt, automatisch eine aktuelle sitemap.xml-Datei zu erstellen? Ich bin wirklich überrascht, wie viel Mühe ich damit hatte ... Danke!

Antworten:

5 für die Antwort № 1

Stellen Sie einfach sicher, dass Ihr Skript das entsprechende generiert Content-Type Header. Das kannst du mit Header().


1 für die Antwort № 2

Google erhält nur die Kopfzeilen und den Körper vondie Antwort. Wenn Ihr PHP-Skript die gleichen Header und den gleichen Body zurückgibt, die Ihr Webserver zurückgeben würde, gibt es technisch keinen Unterschied zwischen der PHP-Skriptantwort oder der Antwort der XML-Datei Ihres Servers. Benutzen curl -i http://example.com/ Um die Antwortheader einer Anfrage zu überprüfen, möchten Sie das selbst testen.

So können Sie dies sicher tun, wofür Mod_rewrite entwickelt wurde (neben den vielen anderen Dingen).