วิธีสร้างไฟล์ xml (sitemap.xml) โดยใช้ php

        ปัญหาเกิดจากการที่ผมต้องการจะทำ sitemap xml โดยที่ link ในเว็บผมนั้นมีหลายแบบมากมาย  จึงต้องใช้ php ในการดึงข้อมูลจากฐานข้อมูลมาสร้างเป็นลิ้งค์  ซึ่งในไฟล์ .xml มันไม่สามารถที่จะเขียนโค้ด php เข้าไปได้อยู่แล้ว 

วิธีแก้คือจะต้องใช้ mod rewrite เป็นตัวช่วยในการจัดการ  เพราะว่าเราะจะต้องเขียนไฟล์ เป็น sitemap.php แล้วใช้ mod rewrite เป็นตัวแปลง url เวลาเรียกผ่าน url : http://xxx.com/sitemap.xml  ให้ไปเรียกการทำงานที่  http://xxx.com/sitemap.php นั่นเอง

ตัวอย่างโค้ดในไฟล์ php เขียนดังนี้

<?php 
header("Content-type: text/xml");
echo '<?xml version="1.0" encoding="UTF-8" ?>';
$site_url = "http://www.xxx.com/"; 
?>

<urlset xmlns="http://www.google.com/schemas/sitemap/0.84" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.google.com/schemas/sitemap/0.84 http://www.google.com/schemas/sitemap/0.84/sitemap.xsd">

    <url>
        <loc><?=$site_url;  ?>page1</loc>
        <lastmod>2015-09-22</lastmod>
        <changefreq>Daily</changefreq>
        <priority>1.00</priority>
    </url>
    <url>
        <loc><?=$site_url;  ?>page2</loc>
        <lastmod>2015-09-22</lastmod>
        <changefreq>Weekly</changefreq>
        <priority>1.00</priority>
    </url>
</urlset>

ซึ่งในส่วนของ <url>…</url> ส่วนนี้เราก็จะดึงข้อมูลจากฐานข้อมูลมาวนลูปใส่ได้เลย

ตัวอย่างไฟล์ผลลัพธ์ sitemap.php เมื่อเขียนเสร็จแล้ว
sitemap php

ขั้นสุดท้ายคือ ทำ mod rewrite โดยใส่โค้ดตามด้านล่างนี้ลงในไฟล์ .htaccess 
RewriteEngine On
RewriteRule ^sitemap.xml /sitemap.php

อัพทุกอย่างขึ้นโฮสต์แล้วก็ลองเรียก http://xxx.com/sitemap.xml จะได้ผลลัพธ์ดังรูป  เป็นอันว่าสำเร็จคับ
sitemap xml

 

Comments

comments

You may also like...

ใส่ความเห็น