/ / Usando o htaccess para “falsificar” um arquivo XML? - php, xml, .htaccess, sitemap

Usando o htaccess para “falsificar” um arquivo XML? - php, xml, .htaccess, sitemap

Aqui está o problema que estou tentando resolver: Eu tenho um site dinâmico orientado a php que está constantemente sendo atualizado com novos conteúdos, e eu quero que meu sitemap XML fique atualizado automaticamente. Duas opções que vejo:

  1. Escreva um script php que consulte meu banco de dados para obter todo o meu conteúdo e saídas para http://mysite.com/sitemap.xml, execute o script regularmente usando um cron job.
  2. Basta criar meu sitemap como um arquivo php (sitemap.php), consultar o banco de dados e escrever diretamente para esse arquivo e usar a regra de reescrita do htaccess. RewriteRule ^sitemap.xml$ sitemap.php de modo que, sempre que alguém solicitar sitemap.xml, ele será direcionado para o arquivo php e obterá um novo arquivo de sitemap.

Eu prefiro ir com a opção # 2, pois é mais simples e não requer a configuração de um cron, mas eu estou querendo saber se o Googlebot não reconhecerá o sitemap.xml como válido se ele for realmente um arquivo php?

Alguém sabe se a opção 2 funcionaria e senão se há alguma maneira melhor de criar automaticamente um arquivo sitemap.xml up-to-date? Estou realmente surpreso com o quanto eu tive problemas com isso ... Obrigado!

Respostas:

5 para resposta № 1

Apenas certifique-se de que seu script gere o apropriado Content-Type cabeçalho. Você pode fazer isso com cabeçalho().


1 para resposta № 2

Google só vai ter os cabeçalhos e o corpo dea resposta. Se o seu script php retorna os mesmos cabeçalhos e o mesmo corpo que o seu servidor web retornaria, então não há diferença técnica entre a resposta do script PHP ou a resposta do arquivo XML pelo seu servidor. Usar curl -i http://example.com/ para inspecionar os cabeçalhos de resposta de uma solicitação se você quiser testar isso por conta própria.

Então você pode fazer isso com segurança, é por isso que o mod_rewrite foi projetado (ao lado de muitas outras coisas).