Munu

การเขียน .htaccess ตอนที่1

หน้าแรก » ข่าวสาร » การเขียน .htaccess ตอนที่1

ตอนแรกก็คิดๆ อยู่ว่าจะเขียนดีมั้ย เพราะคิดว่าคนอ่านคงมีอยู่หยิบมือเดียว แต่เอาวะไหนๆ ก็ไม่ได้โพสต์ ตั้งนาน ขอทำประโยชน์ซะหน่อย ถึงแม้จะมีคนหยิบมือเดียวที่สนใจ

หลายๆ คนคงรู้จักกับ mod_rewrite ซึ่งเป็น module ของ apache ซึ่งตัวนี้น่ะ มันมีประโยชน์ค่อนข้างมากในการทำ url friendly เพื่อให้ google รัก yahoo หลง

ซึ่งโปเกม่อน หลายคนอาจจะเขียนตรงๆ ไปเลยเช่น

โค๊ด:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^tag\/([^\?].*)$ n5-tag.php?tag=$1 [L]

แบบนี้ แล้วทีนี้ถ้าเวบเรามีขนาดใหญ่ module เป็นร้อยๆ ไฟล์ .htaccess ของรามีหวังยาวเป็น พันๆ บรรทัดเป็นแน่ๆ เอางี้ดีกว่าลองมาทำตามวิธีผม (ลอกมาจาก wordpress อีกที ) ไฟล์เดียวครอบจักรวาล

1. ไฟล์ .htaccess

โค๊ด:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.+) – [PT,L]RewriteRule ^(.*) index.php

จบแล้วครับไฟล์ .htaccess เราใช้แค่นี้ คือบอกมันว่า “ไม่ว่าจะเจออะไร พวกมรึง วิ่งมาที่ index.php ให้หมดเลยนะ ขอบใจ”

2. ไฟล์ common.inc.php

โค๊ด:
// Relative path
$conf[‘dir’] = str_replace(‘\\’, ‘/’, dirname(__FILE__));
// Absolute path
$conf[‘path’] = “http://”.$_SERVER[‘SERVER_NAME’].str_replace($_SERVER[‘DOCUMENT_ROOT’], ”, $conf[‘dir’]);
// uri แบบที่ตัด root folder ออก
$conf[‘uri’] = str_replace($conf[‘dir’].’/’, ”, $_SERVER[‘DOCUMENT_ROOT’].$_SERVER[‘REQUEST_URI’]);
// explode เพื่อตัดข้อมูลหลังจาก ? ออกไป
list($xuri) = explode(‘?’, $conf[‘uri’], 2);
// explode เพื่อสร้าง array โดยการ แยก ที่ตำแหน่ง /
$uri = explode(“/”, $xuri);

ส่วนนี้เป็นการเอา absolute path มาแยกออกเป็น array เพื่อที่จะนำไปใช้

3. ไฟล์ index.php

โค๊ด:

require(‘common.inc.php’);

// ถ้าไม่เจอข้อมูลอะไรให้เรียก home/ เป็น default
$loadmodule = ($uri[0]) ? $uri[0] : ‘home’;

$inc = ‘modules/’.$loadmodule;

// เช็คดูว่าถ้ามี module นี้จริงๆ ให้ include เข้ามา
if (is_dir($inc)) {
include($inc.’/compile.php’);
}

ไฟล์เรียกใช้งานโดยมีการ inc common.inc.php เข้ามาใช้ ทีนี้เราก็สามารถเอา array ต่างๆ ไปเรียกใช้ได้ตามสะดวกแล้วครับ เช่น

http://www.domain.com/blog/tee/addnew

แบบนี้เราก็จะได้ array ออกมา 3 ชุดคือ

$uri[0] จะได้ blog
$uri[1] จะได้ tee
$uri[2] จะได้ addnew

ซึ่งพวกนี้เราสามารถนำไปใช้ใน เงื่อนไข ได้ตามปกติเลย เช่น

โค๊ด:
if ($uri[0] == ‘blog’) {
//load blog module
include(‘modules/blog/compile.php’);
}

แล้วใน modules/blog/compile.php เรายังสามารถเรียก action ต่างๆ ได้อีกเช่น

โค๊ด:
switch($uri[2]) {
case ‘addnew’ :
// do something
break;
default :
// do somthing else
break;
}

เท่านี้การเขียน .htaccess ของเราก้ไม่ยุ่งยากอีกแล้วจริงมั้ยครับ

Tags: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

เรามีทีมงานผู้เชี่ยวชาญที่มีประสบการณ์ด้านเว็บไซต์

มาประยุกต์ในการพัฒนาการให้บริการอยู่ตลอดเวลา เพื่อสร้างความพึงพอใจสูงสุดให้แก่ลูกค้าทุกท่าน
ด้วยประสบการณ์ที่เรามีอยู่นั้น ทำให้มั่นใจได้ว่าลูกค้าทุกท่านจะได้รับการบริการที่ดีจากเรา

Call

082-493-2295

E-mail

Konyubyub@Gmail.com

Location

บริษัท ดีไซน์นำโชค จำกัด
58/146 หมู่ที่ 6 หมู่บ้านซื่อตรง คลอง13 ตำบลบึงน้ำรักษ์ อำเภอธัญบุรี จังหวัดปทุมธานี 12110

2014 Powered by IYATHAI.com
Tel: 082-493-2295 E-mail: Konyubyub@gmail.com