ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์ProgrammingPART 1::::เขียน .htaccess แบบ ไฟล์เดียวครอบจักรวาล by Tee++;*
หน้า: [1] 2 3 4   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: PART 1::::เขียน .htaccess แบบ ไฟล์เดียวครอบจักรวาล by Tee++;*  (อ่าน 26321 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
Tee++;
โปรแกรมเมอร์ จอหงวน
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 79
ออฟไลน์ ออฟไลน์

กระทู้: 1,861



ดูรายละเอียด เว็บไซต์
« เมื่อ: 16 ตุลาคม 2007, 00:43:46 »

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

หลายๆ คนคงรู้จักกับ 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 อีกที  Grin) ไฟล์เดียวครอบจักรวาล

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 ของเราก้ไม่ยุ่งยากอีกแล้วจริงมั้ยครับ ^_^

PART 2::::เขียน .htaccess แบบ ไฟล์เดียวครอบจักรวาล by Tee++;
« แก้ไขครั้งสุดท้าย: 08 ธันวาคม 2007, 12:44:30 โดย Tee++; » บันทึกการเข้า

seven
Verified Seller
ก๊วนเสียว
*

พลังน้ำใจ: 44
ออฟไลน์ ออฟไลน์

กระทู้: 407



ดูรายละเอียด
« ตอบ #1 เมื่อ: 16 ตุลาคม 2007, 01:04:16 »

ขอบคุณค่ะ Smiley
บันทึกการเข้า

thaizeal
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 120
ออฟไลน์ ออฟไลน์

กระทู้: 2,202



ดูรายละเอียด
« ตอบ #2 เมื่อ: 16 ตุลาคม 2007, 01:11:17 »

ขอบคุณมากครับ
ยัง งงๆนิดๆเดี๋ยวลองพยายามอ่านอีกรอบ เผื่อฉลาดขึ้น Grin
บันทึกการเข้า
pugkung
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 196
ออฟไลน์ ออฟไลน์

กระทู้: 2,681



ดูรายละเอียด เว็บไซต์
« ตอบ #3 เมื่อ: 16 ตุลาคม 2007, 01:32:30 »

ขอเอาไปใช้ละนะครับ  Cheesy

ขอบคุณครับ  Smiley
บันทึกการเข้า

sunkoster
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 46
ออฟไลน์ ออฟไลน์

กระทู้: 4,071



ดูรายละเอียด เว็บไซต์
« ตอบ #4 เมื่อ: 16 ตุลาคม 2007, 02:40:50 »

แท้งคับ  Smiley
บันทึกการเข้า

hurahura
สมุนแก๊งเสียว
*

พลังน้ำใจ: 20
ออฟไลน์ ออฟไลน์

กระทู้: 868



ดูรายละเอียด
« ตอบ #5 เมื่อ: 16 ตุลาคม 2007, 03:28:58 »

โอ้ว... มันยอดมากเลย
บันทึกการเข้า
mairoo
สมุนแก๊งเสียว
*

พลังน้ำใจ: 8
ออฟไลน์ ออฟไลน์

กระทู้: 639



ดูรายละเอียด
« ตอบ #6 เมื่อ: 16 ตุลาคม 2007, 04:12:29 »

ขอบคุณครับ จะเอาไว้ศึกษาครับ
บันทึกการเข้า

ball6847
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 212
ออฟไลน์ ออฟไลน์

กระทู้: 4,174



ดูรายละเอียด
« ตอบ #7 เมื่อ: 16 ตุลาคม 2007, 04:14:37 »

ขอบุ้คมาร์คนะ ครับท่าน Cheesy
บันทึกการเข้า

UnzO
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 54
ออฟไลน์ ออฟไลน์

กระทู้: 1,872



ดูรายละเอียด เว็บไซต์
« ตอบ #8 เมื่อ: 16 ตุลาคม 2007, 05:48:00 »

ขอบคุณมากเลยครับ กำลังต้องใช้พอดี แต่ผมดูแล้ว มันไม่ยุ่งยากที่ .htaccess แต่ไปยุ่งยากที่ ไฟล์ n แทน (รึป่าวหว้า) Sad

ปล. แบบว่ายังไม่เก่ง PHP เท่าไหร่  Tongue
บันทึกการเข้า
L
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 56
ออฟไลน์ ออฟไลน์

กระทู้: 2,496



ดูรายละเอียด
« ตอบ #9 เมื่อ: 16 ตุลาคม 2007, 06:27:30 »

ขอบ คุณ มาก ครับ ผม
บันทึกการเข้า
barbies55
Verified Seller
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 417
ออฟไลน์ ออฟไลน์

กระทู้: 11,521



ดูรายละเอียด เว็บไซต์
« ตอบ #10 เมื่อ: 16 ตุลาคม 2007, 07:05:35 »

ขอบคุณมากค่ะ ขออ่านอีกสองสามรอบ แต่ได้ใช้แน่
บันทึกการเข้า

รับทำเทมเพลท รับโมเทมเพลทให้เข้ากับสคริปต์ต่างๆ


On the Internet, Never One Know You are a Dog.
ผ้าขี้ริ้วห่อทองย่อมเป็นทองฉันใด เอาทองเปลวมาห่อขี้ก็ยังเป็นขี้ฉันนั้น
asemm
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 114
ออฟไลน์ ออฟไลน์

กระทู้: 2,244



ดูรายละเอียด
« ตอบ #11 เมื่อ: 16 ตุลาคม 2007, 07:10:16 »

ขอบคุณมากครับ
บันทึกการเข้า
sealinda
Moderator
เจ้าพ่อบอร์ดเสียว
*****

พลังน้ำใจ: 65
ออฟไลน์ ออฟไลน์

กระทู้: 3,872



ดูรายละเอียด เว็บไซต์
« ตอบ #12 เมื่อ: 16 ตุลาคม 2007, 07:47:13 »

ขอบคุณค่ะ

เข้ามาอ่าน ไม่งั้นเด๋วน้อยใจ หาว่ามีคนอ่านแค่หยิบมือเดียว  Wink

(แต่จะเข้าใจรึเปล่า มันคืออีกเรื่องนะ  Shocked )
บันทึกการเข้า

spiceday
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 40
ออฟไลน์ ออฟไลน์

กระทู้: 5,006



ดูรายละเอียด เว็บไซต์
« ตอบ #13 เมื่อ: 16 ตุลาคม 2007, 08:16:06 »

 Smiley ขอบคุณครับ ... จะลองเอาไปแ apply ดู
บันทึกการเข้า
forfin
ก๊วนเสียว
*

พลังน้ำใจ: 0
ออฟไลน์ ออฟไลน์

กระทู้: 232



ดูรายละเอียด
« ตอบ #14 เมื่อ: 16 ตุลาคม 2007, 08:22:28 »

ขอบคุณครับ

ขอเซฟเก็บไว้ก่อน ยังศึกษาไปไม่ถึงขั้นนั้นครับ PHPหัดคลาน  Embarrassed
บันทึกการเข้า

indyz
คนรักเสียว
*

พลังน้ำใจ: 0
ออฟไลน์ ออฟไลน์

กระทู้: 114



ดูรายละเอียด
« ตอบ #15 เมื่อ: 16 ตุลาคม 2007, 08:32:14 »

ขอบคุณครับ กำลังพยายามศึกษาอยู่ เพราะเขียนเองเจ๊งตลอด  Angry
บันทึกการเข้า
tong4667
คนรักเสียว
*

พลังน้ำใจ: 0
ออฟไลน์ ออฟไลน์

กระทู้: 141



ดูรายละเอียด
« ตอบ #16 เมื่อ: 16 ตุลาคม 2007, 08:33:40 »

ขอบคุณครับ

ขอเซฟเก็บไว้ก่อน ยังศึกษาไปไม่ถึงขั้นนั้นครับ PHPหัดคลาน  Embarrassed
Cheesy

ลองๆๆๆๆๆๆๆๆๆ
บันทึกการเข้า

CantonaX
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 144
ออฟไลน์ ออฟไลน์

กระทู้: 1,937



ดูรายละเอียด เว็บไซต์
« ตอบ #17 เมื่อ: 16 ตุลาคม 2007, 08:46:07 »

 Shocked บอกตรงๆเลยครับ งง ฮ่าๆๆๆ
สงสัยฝีมือด้านโปรแกรมยังไม่ถึงขั้น หรือพัฒนาไปน้อยมาก ตามเด็กรุ่นหลังไม่ทันแล้ว อิอิ  Embarrassed Tongue
บันทึกการเข้า
workshop
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 68
ออฟไลน์ ออฟไลน์

กระทู้: 1,131



ดูรายละเอียด
« ตอบ #18 เมื่อ: 16 ตุลาคม 2007, 09:12:28 »

 Cry ถึงอ่านไม่รู้เรื่องแต่ก็ขอบคุณมากครับ Cheesy
บันทึกการเข้า

torrentlive.net/signup.php?refer=workshop Refer เวปบิท (ยังเปิดรับอยู่)
kppwed
คนรักเสียว
*

พลังน้ำใจ: 4
ออฟไลน์ ออฟไลน์

กระทู้: 159



ดูรายละเอียด เว็บไซต์
« ตอบ #19 เมื่อ: 16 ตุลาคม 2007, 09:47:20 »

จะลองนำไปใช้ครับ Smiley
บันทึกการเข้า

หน้า: [1] 2 3 4   ขึ้นบน
พิมพ์