สอน codeigniter วิธีตั้งค่า url ภาษาไทย

php-codeigniter-framework
php-codeigniter-framework

สอน codeigniter วิธีตั้งค่า url ภาษาไทย

การพัฒนาเว็บไซต์ที่ดีและมีคุณภาพสิ่งสำคัญมาก ๆ ที่นักพัฒนาต้องคำนึงถึงอยู่ตลอดคือ ทำยังไงให้เว็บไซต์ ทำอันดับ
ได้ดีใน Search Engine ในขั้นตอนของการพัฒนาจึงเป็นส่วนหนึ่งการทำให้เว็บไซต์ให้รองรับ SEO
การปรับให้ url ของเมนูต่าง ๆ ภายในเว็บเราสามารถเข้าถึงหรือใช้งานได้ทั้งภาษาไทยและภาษาอังกฤษ
เป็นวิธีการหนึ่งของการทำ url friendly ซึ่งมีผลทาง seo อันดับการค้นหาใน google search engine

วิธีการตั้งค่าให้ codeigniter สามารถใช้งาน url ภาษาไทยได้ไม่ไช่เรื่องยาก สามารถทำได้ตามขั้นตอนดังนี้

1. เปิดไฟล์ application/config/config.php ค้นหาตัวแปรที่ชื่อว่า permitted_uri_chars
และเพิ่มอักขระภาษาไทย ทั้งสระและพยัญชนะลงไป ยกเว้นอักขระพิเศษเช่น @#$ เป็นต้น

$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-';

จะได้เป็น

$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-ก-ฮะาิีุูเะแำไใๆ่้๊๋ั็์ึื';

2. จากนั้นเปิดไฟล์ system/core/URL.php ค้นหาตัวแปรที่ชื่อว่า $this->segments[]
เปลี่ยนจาก

$this->segments[] =$val

เป็น

$this->segments[] = urldecode($val)

เหตุผลที่ต้องเพิ่ม urldecode ก็เพราะว่าโดยปกติ url ที่เป็นภาษาไทยจะถูก encode ไว้
การใช้ urldecode ก็เพื่อให้แสดงผลภาษาไทยได้อย่างถูกต้องบน address bar ของ browser

3. หลังจากทำตามสองขั้นตอนเบื้องต้นเสร็จแล้ว ตอนนี้เราก็สามารถใช้งาน url ภาษาไทยได้แล้ว
ต่อไปก็เป็นขั้นตอนของการอ้างอิง ระหว่างตัว controller ว่าจะมีชื่อเป็นภาษาไทยว่าอย่างไร
ขั้นตอนนี้ให้เปิดไฟล์ application/config/routes.php

จากนั้นทดลองเพิ่ม routes เข้าไปในลักษณะแบบนี้ $route[‘ชื่อภาษาไทย’]=”controller name”;
ตัวอย่างถ้าต้องการตั้งชื่อให้กับ application/controllers/home.php

จะเขียนออกมาได้ประมาณนี้

$route['หน้าแรก']="home";

และเราสามารถเพิ่ม routes เข้าไปได้อีกเรื่อย ๆ ตามจำนวนหน้าหรือ controller ที่เรามีอยู่
จะได้ในลักษณะดังนี้

$route['default_controller'] = 'home';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;

$route['หน้าแรก']="home";
$route['ผลิตภัณฑ์']="product";
$route['ออกแบบ']="design";
$route['เข้าสู่ระบบ']="login";

หวังว่าจะเป็นประโยชน์สำหรับทุกท่านที่ใช้ codeigniter framework ในการพัฒนาเว็บไซต์