sexta-feira, 30 de junho de 2017

Como criar sitemap dinâmicamente usando PHP

Enviado em 08:23 - por Diguinho - Marcadores :



Tudo que é cadastrado no site, principalmente na parte do blog, entra automaticamente no XML do sitemap, no caso esse arquivo sitemap.xml sequer existe no servidor, ele é apenas uma máscara feita com o uso do mod_rewrite do apache, isso usando o .htaccess. 


<?php
header("Content-Type: application/xml; charset=UTF-8");
echo '<?xml version="1.0" encoding="UTF-8"?>';

$hoje = date('Y-m-d');
?>

<urlset
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9
http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
<url>
<loc>http://www.edgarserra.com/</loc>
  <lastmod><?php echo $hoje;?></lastmod>
  <priority>1.00</priority>
  <changefreq>daily</changefreq>
</url>
<url>
  <loc>http://www.edgarserra.com/index.jsp</loc>
  <lastmod><?php echo $hoje;?></lastmod>
  <priority>0.80</priority>
  <changefreq>daily</changefreq>
</url>
<url>
  <loc>http://www.edgarserra.com/quem-somos.jsp</loc>
  <lastmod><?php echo $hoje;?></lastmod>
  <priority>0.80</priority>
  <changefreq>daily</changefreq>
</url>
<url>
  <loc>http://www.edgarserra.com/servicos.jsp</loc>
  <lastmod><?php echo $hoje;?></lastmod>
  <priority>0.80</priority>
  <changefreq>daily</changefreq>
</url>
<url>
  <loc>http://www.edgarserra.com/blog.jsp</loc>
  <lastmod><?php echo $hoje;?></lastmod>
  <priority>0.80</priority>
  <changefreq>daily</changefreq>
</url>
<url>
  <loc>http://www.edgarserra.com/arquivo-do-blog.jsp</loc>
  <lastmod><?php echo $hoje;?></lastmod>
  <priority>0.80</priority>
  <changefreq>daily</changefreq>
</url>
<url>
  <loc>http://www.edgarserra.com/orcamento.jsp</loc>
  <lastmod><?php echo $hoje;?></lastmod>
  <priority>0.80</priority>
  <changefreq>daily</changefreq>
</url>
<url>
  <loc>http://www.edgarserra.com/contato.jsp</loc>
  <lastmod><?php echo $hoje;?></lastmod>
  <priority>0.80</priority>
  <changefreq>daily</changefreq>
</url>
 <?php
 
/*
Conecta ao banco de dados... essa parte você acha fácil na internet.
*/
$sql_tabela = mysql_query("SELECT id,titulo FROM TABELA ORDER BY id DESC");

 while($tabela = mysql_fetch_assoc($sql_tabela)){
echo "<url>
  <loc>http://www.edgarserra.com/".$tabela['id']."/".$tabela['titulo'].".jsp</loc>
  <lastmod>".$hoje."</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.6</priority>
 </url>";
}
 ?>
</urlset>


Como disse acima, no servidor de fato não existe nenhum arquivo chamado sitemap.xml, usamos o mod_rewrite para "criar" esse arquivo artificial, para isso basta: 

RewriteEngine On 
RewriteRule ^sitemap\.xml$ gera_xml.php [L] 

Copie isso e cole em um arquivo chamado .htaccess (note que ele não tem nome mesmo, é só extensão, você pode renomear ele assim no FTP do seu site, pois no Windows você não conseguirá criar um arquivo sem nome. Esse arquivo deve ser jogado na raiz do seu site. 

No caso quando for requisitado o sitemap.xml ele vai redirecionar a requisição para o gera_xml.php, o importante é você colocar o código que gera o xml dentro de um arquivo chamado gera_xml.php, ou alterar esse nome no código passado acima. 

A idéia desse pequeno artigo foi mostrar como é simples fazer um sitemap dinâmico, é claro que ele terá que ser adapatado para a realidade do seu site, mas agora é com você.

Sobre o autor
Gabriel Medina é o autor deste blog, atualmente estuda eng. elétrica, ama jogar damas, assistir desenhos, filmes e séries, além de praticar esportes saudaveis.
Inscrever-se neste Blog via Email :

0 Comentários:

© 2017 Webzoon. Designed by Bloggertheme9
Powered by Blogger.
back to top