Contact
Line : comsiam
Contact
Line : comsiam

URL Rewrite ใน Joomla ช่วยให้ URL ไม่ต้องแสดง index.php โดยต้องตั้งค่าทั้งใน Joomla และเว็บเซิร์ฟเวอร์ให้รองรับ วิธีที่ใช้ขึ้นกับเซิร์ฟเวอร์ เช่น Apache, LiteSpeed, IIS หรือ Nginx ก่อนเริ่มควรสำรองไฟล์และตรวจสอบก่อนว่าเว็บไซต์ใช้เซิร์ฟเวอร์ชนิดใด
ดูข้อมูลเซิร์ฟเวอร์จากแผงควบคุมโฮสติ้ง หรือสอบถามผู้ให้บริการ หากไม่แน่ใจ อย่าเพิ่งเปลี่ยนไฟล์หรือเปิดตัวเลือก URL Rewrite เพราะการตั้งค่าที่ไม่ตรงกับเซิร์ฟเวอร์อาจทำให้หน้าเว็บขึ้นข้อผิดพลาด
สำรองไฟล์ htaccess.txt หรือ web.config.txt และจดสถานะตัวเลือก SEO เดิมใน Global Configuration ไว้ก่อน เผื่อจำเป็นต้องย้อนกลับ
ในหลังบ้าน Joomla ไปที่ System → Global Configuration → SEO แล้วตรวจว่า Search Engine Friendly URLs ตั้งเป็น Yes หากยังไม่ได้เปิด ให้เปิดและทดสอบหน้าเว็บก่อนดำเนินการขั้นต่อไป
ในโฟลเดอร์ติดตั้ง Joomla ให้เปลี่ยนชื่อไฟล์ htaccess.txt เป็น .htaccess โดยปกติไฟล์จะอยู่ในโฟลเดอร์หลักของเว็บไซต์ หากมีไฟล์ .htaccess อยู่แล้ว อย่าเขียนทับทันที ให้สำรองและตรวจเนื้อหาเดิมก่อน
กลับไปที่ System → Global Configuration → SEO แล้วตั้ง Use URL Rewriting เป็น Yes จากนั้นกดบันทึก
เปิดหน้าแรก เมนู หมวดหมู่ และบทความ ตรวจว่า URL เปิดได้และไม่มีข้อผิดพลาด หาก Joomla ติดตั้งอยู่ในโฟลเดอร์ย่อยหรือมีการปรับแต่ง .htaccess อยู่แล้ว การตั้งค่าอาจต้องเหมาะกับตำแหน่งติดตั้งและโฮสติ้งนั้น
สำหรับ IIS ต้องมีโมดูล URL Rewrite และไฟล์กฎที่ถูกต้อง โดยทั่วไป Joomla ใช้ไฟล์ web.config.txt ซึ่งอาจต้องเปลี่ยนชื่อเป็น web.config ตามการตั้งค่าของเซิร์ฟเวอร์ ตรวจให้แน่ใจว่าโฮสติ้งรองรับก่อนเปิด Use URL Rewriting
Nginx ไม่อ่านไฟล์ .htaccess การทำ URL Rewrite จึงต้องตั้งกฎที่ฝั่งเซิร์ฟเวอร์ แล้วจึงเปิด Use URL Rewriting ใน Joomla เมื่อกฎพร้อม หากไม่มีสิทธิ์แก้การตั้งค่า Nginx ให้ขอให้ผู้ให้บริการโฮสติ้งดำเนินการ
LiteSpeed รองรับการใช้กฎจาก .htaccess ได้ในหลายรูปแบบ แต่การตั้งค่าของแต่ละโฮสติ้งอาจไม่เหมือนกัน หากเปลี่ยนชื่อไฟล์แล้ว URL ยังมีปัญหา ให้สอบถามผู้ให้บริการว่าเปิดการอ่าน .htaccess และ rewrite rules ไว้หรือไม่
ComSiam แนะนำให้ยืนยันชนิดเซิร์ฟเวอร์และการรองรับ rewrite rules กับโฮสติ้งก่อนแก้ไฟล์บนเว็บไซต์ที่ใช้งานจริง
หลังเปิดตัวเลือกครบ URL ที่เคยมี index.php ควรถูกเรียกผ่านรูปแบบที่ไม่มีส่วนดังกล่าว ทดลองเปิดหน้าเว็บไซต์จากเมนูและลิงก์ภายใน ไม่ใช่ตรวจแค่หน้าแรก
ปิด Use URL Rewriting ชั่วคราว แล้วตรวจว่าไฟล์กฎถูกเปลี่ยนชื่อถูกต้องและเซิร์ฟเวอร์รองรับ rewrite rules หากเว็บไซต์กลับมาใช้งานได้ แสดงว่าควรตรวจการตั้งค่าฝั่งเซิร์ฟเวอร์ก่อนเปิดอีกครั้ง
ใช้ไฟล์สำรองคืนชื่อหรือค่าก่อนหน้า และติดต่อผู้ให้บริการโฮสติ้งพร้อมแจ้งชนิดเซิร์ฟเวอร์และข้อความผิดพลาด อย่าลบกฎเดิมใน .htaccess หรือ web.config โดยไม่ทราบว่ากฎนั้นใช้กับอะไร
ตรวจหน้าแรก หน้าหมวดหมู่ บทความ แบบฟอร์มค้นหา และหน้าเข้าสู่ระบบ ถ้าเว็บไซต์มีส่วนเสริมหรือระบบสมาชิก ให้ลองเส้นทางที่ผู้ใช้ใช้งานจริงด้วย
เมื่อ Joomla และเว็บเซิร์ฟเวอร์ตั้งค่า URL Rewrite สอดคล้องกัน URL จะเรียกหน้าเว็บได้โดยไม่ต้องแสดง index.php และเว็บไซต์ยังเปิดใช้งานได้ตามปกติ