ModRewriteSyntaxการเขียน.htaccess
Mod Rewrite จะเป็นการเขียนคำสั่ง ให้ลิงค์เว็บไซต์ หรือ URL ให้สั้นลงดูแล้วสะอาดตา ช่วยในการ ทำ SEO ได้ดีขึ้น เพราะ Google มันจะชอบลิงค์สั้นอ่านแล้วเข้าใจง่ายมีความหมาย (อันนี้อ่านเจอจากเว็บต่างประเทศ) Mod Rewrite มันก็จะช่วยซ่อน URL ที่ยาวและมั่วให้อยู่ในรูปแบบ URL ที่สั้นและสวยงามมีความหมาย
คำสั่ง Mod Rewrite ที่เขียนนั้นจะต้องบันทึกเป็นไฟล์ .htaccess ไว้ใน Directory ของเว็บไซต์ ซึ่ง Syntax Mod Rewrite หรือคำสั่งที่ใช้ในการเขียนก็ตั้งแต่ Basic จนถึง Advance ตอนนี้เราก็มาดูคำสั่งแบบ Basic ที่ใช้กันส่วนมากกันก่อนครับ
การที่จะให้งานคำสั่ง Mod Rewrite ได้นั้นจะต้องตั้งค่า httpd.conf Mod Rewrite ใน Appserv ก่อนนะครับ แล้ว การเขียนคำสั่งใน Appserv กับ IIS จะไม่เหมือนกันนะครับ แต่คล้ายๆกัน แต่ผมจะแนะนำการเขียนใน Appserv นะครับเพราะส่วนใหญ่จะใช้ Appserv กัน
ไฟล์ .htaccess
#คำสั่งแรก RewriteEngine On เป็นคำสั่งเปิดใช้งาน mod rewirte เครื่อง # เป็นเครื่องหมายที่ใช้ในการ Comment
RewriteEngine On
#คำสั่ง RewriteBase คำสั่งให้สามารถให้งานฟังก์ชั่นของ PHP Version ต่ำกว่า Version ปัจจุบันได้ หรือสามารถอ่านคำสั่งอักขระพิเศษที่ Server ปิดการใช้งานไว้ อันนี้ตามที่ผมเข้าใจ
php_flag register_globals on
#คำสั่งเรียกที่พาสของเว็บไซต์ ถ้าไม่มีก็ไม่ต้องใส่ ถ้าเก็บไฟล์เว็บไว้ในโฟล์เดอย่อยไปอีกก็จะเขียน เช่น RewriteBase / helloworld คือเราเก็บไฟล์เว็บไว้ใน www/helloworld ถ้าไม่มีก็ใส่แค่ ส่วนใหญ่จะเป็นทดสอบใน localhost
RewriteBase
#คำสั่ง RewriteRule เป็นการกำหนดเงื่อนไขที่จะทำการแปลง URL เช่น
RewriteRule
ส่งค่าตัวแปรเดียว
#RewriteRule ^(.*)$ ?option=topic&view=detail&name1=$1
#RewriteRule ^([a-zA-Z0-9_-]+)$ ?option=topic&view=detail&name1=$1
#RewriteRule ^(.*).html$ ?option=topic&view=detail&name1=$1
ส่งค่ามากกว่า 1 ตัวแปร
#RewriteRule ^(.*)-^(.*)$ ?option=topic&view=detail&name1=$1&name2=$2
#RewriteRule ^(.*)-^(.*).html$ ?option=topic&view=detail&name1=$1&name2=$2
^(.*)$ ความหมายคือ ส่งค่าอะไรมาก็ได้
^([a-zA-Z0-9_-]+)$ ความหมายคือ ค่าที่ส่งมาได้เฉพาะค่าที่กำหนดเท่านั้น คือ 0-9 กับอักษร a-z A-Z เท่านั้น
โดยจะส่งค่าไปที่ตัวแปร $1 จะเป็น ID หรือ ชื่อหัวข้อก็ได้ เวลาจะเรียกก็อย่าง เช่น
www.example.com/rewriterule อันนี้เป็น URL Mod Rewirte
www.example.com/rewriterule.html อันนี้เป็น URL Mod Rewirte
www.example.com/?option=topic&view=detail&name=rewriterule อันนี้เป็น URL จริงที่ทำงานอยู่ภายใน
#คำสั่ง ErrorDocument 404 เป็นคำสั่งตรวจสอบไฟล์ 404 คือไม่พบไฟล์ที่ส่งมา โดยจะต้องสร้างไฟล์ 404.htnl ไว้ใน Directory ของเว็บไซต์ วิธีเขียน
ErrorDocument 404 /helloworld/404.html
สรุปไฟล์ .htaccess
RewriteEngine On
RewriteBase / hellworld
#กรณีทดสอบใน localhost ใส่พาสที่อยู่ของเว็บ RewriteBase / hellworld
RewriteRule ^(.*)$ ?option=topic&view=detail&name1=$1
#เวลาเรียก URL เช่น www.example.com/rewriterule
ErrorDocument 404 /helloworld/404.html
อีกาฉลาดกว่าที่เห็น 4 ความสามารถที่ทำให้นกสีดำชนิดนี้ไม่ธรรมดา
ห้างสรรพสินค้าไทยที่หรูหรามาก จนหลายคนไม่กล้าเข้าไปเพื่อใช้บริการ
4 เมืองร้างในไทย จากยุคเหมืองแร่ถึงเมืองบาดาลใต้เขื่อน
ยุคนี้ต้องระวัง Digital Risk Extraction Theory
พระนางพิมพา มุมเงียบในพุทธประวัติที่หลายคนมองข้าม
อาหารไทยที่กำลังสูญหาย
เชือกเล็ก ๆ ที่ฝาถังน้ำมัน ไม่ได้มีไว้แค่กันหาย
จังหวัดที่โรงแรมถูกจองเต็มเร็วที่สุด ห้องพักในโรงแรมเป็นที่ต้องการมากที่สุด
5 จังหวัด ที่เจองูกะปะเยอะที่สุดในประเทศไทย
นักท่องเที่ยวจีนหลุดเข้าห้องพักพนักงานหญิง สนามบินอินชอนเร่งสอบช่องโหว่
เสียบปลั๊กทิ้งไว้กินไฟจริงไหม 4 อุปกรณ์ที่ควรตัดไฟหลังใช้
ข้าวสารสายพันธุ์อร่อยที่มีราคาแพงมากที่สุดในโลก
ห้างสรรพสินค้าไทยที่หรูหรามาก จนหลายคนไม่กล้าเข้าไปเพื่อใช้บริการ
พระนางพิมพา มุมเงียบในพุทธประวัติที่หลายคนมองข้าม
อีกาฉลาดกว่าที่เห็น 4 ความสามารถที่ทำให้นกสีดำชนิดนี้ไม่ธรรมดา
ยุคนี้ต้องระวัง Digital Risk Extraction Theory
นักท่องเที่ยวจีนหลุดเข้าห้องพักพนักงานหญิง สนามบินอินชอนเร่งสอบช่องโหว่
กินบ๊ะจ่าง 2 ลูกแล้วอาเจียนเป็นเลือด หมอชี้โรคตับคือปัจจัยเสี่ยง


