/ / ¿Usando htaccess para “falsificar” un archivo XML? - php, xml, .htaccess, sitemap

¿Usar htaccess para "falsificar" un archivo XML? - php, xml, .htaccess, mapa del sitio

Aquí está el problema que estoy tratando de resolver: Tengo un sitio web dinámico impulsado por php que se actualiza constantemente con nuevo contenido, y quiero que mi mapa del sitio XML se actualice automáticamente. Dos opciones que veo:

  1. Escriba un script php que consulte mi base de datos para obtener todos mis contenidos y salidas a http://mysite.com/sitemap.xml, ejecute el script regularmente usando un trabajo cron.
  2. Simplemente cree mi sitemap como un archivo php (sitemap.php), consulte la base de datos y escriba directamente en ese archivo, y use la regla de reescritura de htaccess RewriteRule ^sitemap.xml$ sitemap.php para que cada vez que alguien solicite sitemap.xml, se dirija al archivo php y obtenga un nuevo archivo de sitemap.

Prefiero optar por la opción # 2, ya que es más simple y no requiere configurar un cron, pero me pregunto si Googlebot no reconocerá sitemap.xml como válido si en realidad es un archivo php.

¿Alguien sabe si la opción # 2 funcionaría, y si¿No hay una forma mejor de crear automáticamente un archivo sitemap.xml actualizado? Realmente me sorprende la cantidad de problemas que he tenido con esto ... ¡Gracias!

Respuestas

5 para la respuesta № 1

Solo asegúrate de que tu script genere el apropiado Content-Type encabezamiento. Puedes hacerlo con encabezamiento().


1 para la respuesta № 2

Google solo obtendrá los encabezados y el cuerpo dela respuesta. Si su script php devuelve los mismos encabezados y el mismo cuerpo que devolvería su servidor web, técnicamente no hay diferencia entre la respuesta del script PHP o la respuesta del archivo XML de su servidor. Utilizar curl -i http://example.com/ para inspeccionar los encabezados de respuesta de una solicitud si desea probar eso por su cuenta.

Así que puedes hacer esto de manera segura, eso es para lo que mod_rewrite ha sido diseñado (junto a muchas otras cosas).