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

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

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

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

กระทู้: 18



ดูรายละเอียด
« ตอบ #20 เมื่อ: 15 กรกฎาคม 2009, 17:53:41 »

โห โค้ดนี้พี่ตี๋เค้าคงไม่ใช้แล้วมั้งคับ กี่ปีแล้วเนี่ย คงไปเปลี่ยนไปใช้ CodeIgniter แทนแล้ว

ลองใช้โค้ดนี้ดูแทนละกันคับ

โค๊ด: (.htaccess)
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

โค๊ด: (index.php)
<?php

$segment 
= isset($_SERVER['PATH_INFO']) ? explode('/',preg_replace('~^/?(.*?)/?$~','$1',$_SERVER['PATH_INFO'])) : array() ;


print_r($segment);
print_r($_GET);



ลองเข้าด้วย

domain.com/class/method/param1/param2?author=Tee
domain.com/class/method/param1/param2/?author=Tee
domain.com/class/method/param1/param2///////////?author=Tee

มันน่าจะออกมาเป็นแบบนี้

โค๊ด:
Array
(
    [0] => class
    [1] => method
    [2] => param1
    [3] => param2
)
Array
(
    [author] => Tee
)


แบบนี้จะสามารถใช้งานในกรณีที่เราเขียนโปรแกรมไว้ใน Subfolder ได้ด้วย ไฟล์ต่างๆที่มีอยู่จริงบนก็จะไม่ถูก rewrite ไปด้วย สามารถมองเห็นได้ปกติ แต่ถ้าไม่ปกติแสดงว่าเป็นที่โฮสท์ ซวยไป ต้องเขียน RewriteCond ดักเพิ่มเป็น case ไป

ปล. ถ้า Query String ไม่สามารถใช้งานได้ ที่ .htaccess ลองเปลี่ยน [L] เป็น [L,QSA]

คาราวะอาจารย์ตี๋หนึ่งจอก +1


โอ้ววววววววว  เข้าไปอ่านเรื่อง CodeIgniter  มึนกลับบ้านไม่ถูกเลยคับบบบบบบบบ
บันทึกการเข้า
Manson
สมุนแก๊งเสียว
*

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

กระทู้: 957



ดูรายละเอียด เว็บไซต์
« ตอบ #21 เมื่อ: 15 กรกฎาคม 2009, 18:07:07 »

อยากให้ยกตัวอย่างการเขียน Rewrite Webbaord SMF จากเดิมที่เห็นกัน จะเป็น

หน้าหลัก

อ้างถึง


หน้าย่อยกระทู้
อ้างถึง


เราจะเขียนอย่างไรให้ออกมาเป็น
อ้างถึง
http://www.domain.com/ ชื่่อกระทู้.html


รบกวนแนะนำหน่อยนะครับ
ขอบคุณครับ  Kiss Kiss Kiss
บันทึกการเข้า

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

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

กระทู้: 4,174



ดูรายละเอียด
« ตอบ #22 เมื่อ: 15 กรกฎาคม 2009, 18:08:58 »



โอ้ววววววววว  เข้าไปอ่านเรื่อง CodeIgniter  มึนกลับบ้านไม่ถูกเลยคับบบบบบบบบ


วันแรกที่ผมรู้จัก CodeIgniter ผมก็คิดแบบนี้แหละ 555+
ทิ้งช่วงไปอีกนานเลยคับ กว่าจะเข้าใจถึงขั้นพอใช้งานเบื้องต้นได้ จะว่าไปตอนนี้ยังใช้ความสามารถของ CodeIgniter ได้ยังไม่ถึง 50% เลย 555+

http://codeigniter.com/user_guide/
http://codeigniter.in.th/user_guide/
http://www.jquerytips.com/category/codeigniter/ << ลองไล่อ่านของพี่ตี๋ดูจะเข้าใจเยอะขึ้นมากเลยคับ
บันทึกการเข้า

morizaki
ก๊วนเสียว
*

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

กระทู้: 499



ดูรายละเอียด
« ตอบ #23 เมื่อ: 12 สิงหาคม 2009, 20:36:54 »

 :-*ขอบคุณครับ เขียน php มานาน แต่ไม่เคยทำพวก seo เลย
Mod rewrite ก็เพิ่งรู้จัก ช่วยได้เยอะเลยครับ
งมอยู่พักนึง  Lips Sealed:P Cry
บันทึกการเข้า
kayao
คนรักเสียว
*

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

กระทู้: 193



ดูรายละเอียด เว็บไซต์
« ตอบ #24 เมื่อ: 18 สิงหาคม 2009, 20:42:19 »

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

nineob
Newbie
*

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

กระทู้: 14



ดูรายละเอียด
« ตอบ #25 เมื่อ: 14 มกราคม 2010, 10:13:25 »

 wanwan031 ภาคแรกยังพอไหวภาคนี้ มึนตึบเลย ของคุณน่ะ
บันทึกการเข้า
xvlnw.com
Verified Seller
เจ้าพ่อบอร์ดเสียว
*

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

กระทู้: 5,905



ดูรายละเอียด เว็บไซต์
« ตอบ #26 เมื่อ: 14 มกราคม 2010, 10:38:52 »

ขอบคุณมากคับ ถึงจะยัง งง หน่อย ฮ่า ๆ ๆ
บันทึกการเข้า

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

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

กระทู้: 4,295



ดูรายละเอียด เว็บไซต์
« ตอบ #27 เมื่อ: 14 มกราคม 2010, 14:09:53 »

ขอบคุณมากครับๆ
+1
บันทึกการเข้า

xvlnw.com
Verified Seller
เจ้าพ่อบอร์ดเสียว
*

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

กระทู้: 5,905



ดูรายละเอียด เว็บไซต์
« ตอบ #28 เมื่อ: 15 มกราคม 2010, 01:27:34 »

โห โค้ดนี้พี่ตี๋เค้าคงไม่ใช้แล้วมั้งคับ กี่ปีแล้วเนี่ย คงไปเปลี่ยนไปใช้ CodeIgniter แทนแล้ว

ลองใช้โค้ดนี้ดูแทนละกันคับ

โค๊ด: (.htaccess)
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

โค๊ด: (index.php)
<?php

$segment 
= isset($_SERVER['PATH_INFO']) ? explode('/',preg_replace('~^/?(.*?)/?$~','$1',$_SERVER['PATH_INFO'])) : array() ;


print_r($segment);
print_r($_GET);



ลองเข้าด้วย

domain.com/class/method/param1/param2?author=Tee
domain.com/class/method/param1/param2/?author=Tee
domain.com/class/method/param1/param2///////////?author=Tee

มันน่าจะออกมาเป็นแบบนี้

โค๊ด:
Array
(
    [0] => class
    [1] => method
    [2] => param1
    [3] => param2
)
Array
(
    [author] => Tee
)


แบบนี้จะสามารถใช้งานในกรณีที่เราเขียนโปรแกรมไว้ใน Subfolder ได้ด้วย ไฟล์ต่างๆที่มีอยู่จริงบนก็จะไม่ถูก rewrite ไปด้วย สามารถมองเห็นได้ปกติ แต่ถ้าไม่ปกติแสดงว่าเป็นที่โฮสท์ ซวยไป ต้องเขียน RewriteCond ดักเพิ่มเป็น case ไป

ปล. ถ้า Query String ไม่สามารถใช้งานได้ ที่ .htaccess ลองเปลี่ยน [L] เป็น [L,QSA]

คาราวะอาจารย์ตี๋หนึ่งจอก +1

ขอวิธีการนำไปใช้งานหน่อยนะครับ พอดีจะำทำแบบเป็นภาษาำไทย สมมติว่าผมจะทำให้เป็น domain.com/ชื่อสมาชิก/ข้อมูลสมาชิก

แล้วผมต้อง Get ค่าเอาไปใช้ยังไงครับ โดยสมมติว่าชื่อสมาชิกมีช่องว่างแบบนี้ครับ   test system

1. ทำให้ test system  เป็น test-system อย่างไรครรับ
2. หลังจากทำแล้ว จะได้ว่า domain.com/test-system/ข้อมูลสมาชิก เวลาเรา Get ค่า Array[0] จะได้ test-system มา แล้วเอาไป Query ในฐานข้อมูล แต่ใรฐานข้อมูลมันเป็น test system แล้วเราจะทำไงกับมันครับ  คำตอบอาจจะเป็นประมาณว่าแปลงกลับไปเป็นช่องว่าง แล้วถามต่อครับว่าื ในกรณีที่เป็น test? system test เวลาแปลงให้ใส่เครื่องหมายต่าง ๆ เป็น - ให้หมด จะได้ test--system-test แล้วเราจะแปลงกลับถูกได้ไงครับ ก่อนที่จะเอาไปเชคกับฐานข้อมูล
3. ขอบคุณมากครับผม
บันทึกการเข้า

xvlnw.com
Verified Seller
เจ้าพ่อบอร์ดเสียว
*

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

กระทู้: 5,905



ดูรายละเอียด เว็บไซต์
« ตอบ #29 เมื่อ: 15 มกราคม 2010, 11:33:58 »

ไม่มีใครมาตอบให้เลย งิงิ

 wanwan011 wanwan011 wanwan011 wanwan011
บันทึกการเข้า

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

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

กระทู้: 996



ดูรายละเอียด
« ตอบ #30 เมื่อ: 15 มกราคม 2010, 12:29:01 »

 wanwan014

เพื่ม db อีก 1 แถว ครับ

เช่น
-id
-title
-link <<< เพิ่มเข้าไป

link  ไว้เก็บ url ไปเลย  wanwan020

ก่อนจะ query เข้าไปก็แปลงชักหน่อย

$url = strtolower(str_replace(" ","-",$url));
$url = strtolower(preg_replace('~[^a-z0-9ก-๙\.\-\_]~iu','',$url));
$url = urlencode($url);

mysql_query('...'); อะไรว่าไป
แค่เนียก็จะได้ Link ที่เป็น URL แล้ว


บันทึกการเข้า

xvlnw.com
Verified Seller
เจ้าพ่อบอร์ดเสียว
*

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

กระทู้: 5,905



ดูรายละเอียด เว็บไซต์
« ตอบ #31 เมื่อ: 15 มกราคม 2010, 12:34:48 »

wanwan014

เพื่ม db อีก 1 แถว ครับ

เช่น
-id
-title
-link <<< เพิ่มเข้าไป

link  ไว้เก็บ url ไปเลย  wanwan020

ก่อนจะ query เข้าไปก็แปลงชักหน่อย

$url = strtolower(str_replace(" ","-",$url));
$url = strtolower(preg_replace('~[^a-z0-9ก-๙\.\-\_]~iu','',$url));
$url = urlencode($url);

mysql_query('...'); อะไรว่าไป
แค่เนียก็จะได้ Link ที่เป็น URL แล้ว




ขอบคุณมากครับ ได้แนวคิดดี ๆ แล้ว อิอิ +1
บันทึกการเข้า

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

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

กระทู้: 162



ดูรายละเอียด เว็บไซต์
« ตอบ #32 เมื่อ: 01 กันยายน 2010, 10:57:42 »

ขอบคุณมากสำหรับความรู้ ๆๆๆๆๆๆๆ Cry
บันทึกการเข้า

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