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

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

หน้า: [1] 2 3   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: การแปลง URL โดยใช้ Mod_Rewrite  (อ่าน 41719 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
tosakp
หัวหน้าแก๊งเสียว
*

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

กระทู้: 1,960



ดูรายละเอียด
« เมื่อ: 11 ธันวาคม 2006, 17:57:59 »

20/12/2007:
ไม่ได้ Update นาน วันนี้ไปเจอข้อมูลเว็บภาษาไทย เห็นว่ามีประโยชน์ครับ
http://www.phpconcept.com/node/8


======================================

การแปลง URL โดยใช้ Mod_Rewrite

Mod_Rewrite คืออะไร?
Mod_Rewrite คือการแปลง URL ที่ดูยากให้อยู่ในรูปแบบที่เราต้องการ เพื่อประโยชน์หลายด้าน (ซึ่งจะกล่าวถึงต่อไป) และการแปลงเพื่อประโยชน์ด้าน SEO ก็เป็นอีกอันนึงที่มีการนำเอา Mod_Rewrite มาใช้ เพราะเรารู้กันดีว่า Search Engine ไม่ค่อยชอบ pages ที่เป็น dynamic ที่มี query string ยาวเฟื๊อย

ตัวอย่าง URL ที่ยาว และซับซ้อน
โค๊ด:
http://www.site.com/viewcatalog.asp?category=hats&prodID=53
เมื่อผ่านการแปลง เราสามารถทำให้สั้นลงได้ดังนี้
โค๊ด:
http://www.site.com/catalog/hats/53/

เริ่มทำ Mod_Rewrite
บาง Server ไม่สามารถจะทำ Mod_Rewrite ได้เนื่องจากไม่ได้ติดตั้ง Module Mod_Rewrite ดังนั้นถ้าเราจำเป็นต้องใช้ Mod_Rewrite ก็ต้องตรวจสอบดีๆก่อนเช่า host

.htaccess ไฟล์สำคัญในการทำ Mod_Rewrite
เราจะใช้ไฟล์นี้ในการกำหนด Rule ของการทำ Mod_Rewrite
เริ่มต้นด้วยคำสั่ง
อ้างถึง
RewriteEngine on

เพื่อเปิดการทำงาน เขียนไว้ในบรรทัดแรกสุดของไฟล์

ต่อไปจะเป็นการนำเอา Mod_Rewrite ไปให้งาน ซึ่งผมจะเริ่มด้วยตัวอย่างง่ายๆ และเขียน Rewrite Rule ง่ายก่อน แล้วก็ยกตัวอย่างต่อไปเรื่อยๆนะครับ

ใช้ Mod_Rewrite ในการทำ Redirects
ถ้าเราต้องการเปลี่ยน location เก่า ไปที่ Location ใหม่แบบถาวร
อ้างถึง
RewriteEngine on
RewriteRule ^old\.html$ new.html

ถ้าเราเขียนแบบนี้ เมื่อมีการใส่ url เป็น old.html มันก็จะถูกส่งไปที่ไพล์ new.html แต่ผู้เยี่ยมชมยังเห็น URL บน browser เป็น old.html อยู่เหมือนเดิม



อาจจะดูงงๆ อธิบายเพิ่มเติมดังนี้ RewriteRule จะประกอบด้วยกัน 3 ส่วน
1. Call to action RewriteRule  ขึ้นต้นบรรทัด กำหนดว่าบรรทัดนี้เป็น Rewrite Rule
2. Pattern  ^old\.html$ เป็นการตรวจสอบ URL ที่ใส่เข้ามาทาง Location Bar ของ Browser ซึ่งจะใช้ regex (Regular Expression) ในการตรวจสอบ (จะอธิบายเพิ่มเติมต่อไป)
3. Rewrite  new.html  เป็น URL ที่เราต้องการให้แปลงเป็นอันใหม่
หมายเหตุ: จริงๆมี 4 ส่วน แต่ในตัวอย่างเราใช้ 3 ส่วน

ขออธิบายในส่วนที่ 2 (Pattern) เพิ่มเติมดังนี้ ในส่วนนี้ประกอบด้วยเครื่องหมายสำคัญ 3 อย่างคือ
^old\.html$
- เครื่องหมาย The caret หรือ ^ เป็นการกำหนดจุดเริ่มต้น URL ที่อยู่ภายใต้ direcory ปัจจุบันที่เราจะตรวจสอบ ซึ่งก็คือ directory เดียวกับไฟล์ .htaccess 
- เครื่องหมาย The dollar sign หรือ  $ ซึ่งบอกจุดสิ้นสุดของการตรวจสอบ Pattern
- อีกเครื่องหมายนึงก็คือ The period หรือ . จุด ที่อยู่ข้างหน้านามสกุล html ซึ่งเครื่องหมาย จุด นั้นเป็นอักขระพิเศษ ใน regular expressions ซึ่งจะมีความหมายว่า แทนด้วยตัวอักษรใดๆ 1 ตัว (ดูเพิ่มเติมใน regular expressions ต่อจากนี้) แต่ในนี้เราจะตรวจสอบว่า ถ้า Pattern เป็น old.html หรือไม่ เราจึงต้องใส่ \ ซึ่งเป็น escape charactor ไว้ด้วย

เมื่อเราเขียนตามนี้ เมื่อผู้เยี่ยมชมเว็บกรอกมาเป็น old.html server ก็จะทำ  transparently redirect ไปที่ new.html โดยที่ผู้เยี่ยมชมเว็บไม่รู้ตัวว่าเป็นข้อมูลอันใหม่แล้ว เพราะ URL บน browser เป็น old.html อยู่เหมือนเดิม

แต่ถ้าเราต้องการให้ URL ที่ปรากฏบน browser เป็น new.html ด้วย เราก็เพียงแต่เติม [R] เข้าไปต่อท้ายบรรทัด ดังนี้
อ้างถึง
RewriteRule ^old\.html$ new.html [R]

ซึ่ง [R] ก็คือ ส่วนที่ 4 ที่ผมบอกไว้ข้างบน
4. Command Flag [R] ซึ่งจะเป็นคำสั่งพิเศษกำหนดเงื่อนไขไว้ มีหลายคำสั่งซึ่งจะบอกไว้ตอนท้าย


การใช้ Regular Expressions
จะบอกว่า เป็นส่วนสำคัญที่สุดในการทำ Rewrite และมันก็ทำความความเข้าใจได้ยากพอควร ไม่ต้องห่วงครับ เดี๋ยวผมจะอธิบายเป็นขั้นตอน และยกตัวอย่างประกอบไปเรื่อยๆนะครับ

ตัวอย่างแรก
อ้างถึง
RewriteRule ^products/([0-9][0-9])/$ productinfo.php?prodID=$1

จะเปลี่ยนจาก
อ้างถึง
productinfo.php?prodID=11 หรือ productinfo.php?prodID=99
ให้เป็น
อ้างถึง
products/11/ หรือ products/99/


ดูที่ Pattern จะมีส่วนของที่อยู่ในปีกกาเหลี่ยม [ ]  เราเรียกว่า ranges
ในตัวอย่างจะเป็น [0-9] ซึ่งจะใช้ตรวจสอบว่าเป็นตัวอักษรที่อยู่ในช่วง 0-9 ใดๆ
เราสามารถตรวจสอบ ranges อื่นได้ เช่น [A-Z] ตรวจสอบว่าเป็นตัวอักษรตัวใหญ่ตั้งแต่ A-Z
[a-z] ก็เป็นการตรวสอบตัวเล็ก, ถ้า [A-Za-z] ก็ตรวจสอบว่าเป็นทั้งตัวใหญ่และตัวเล็ก เป็นต้น

และใน Pattern ก็จะมีส่วนที่อยู่ในวงเล็บ ( ) เป็นการเก็บค่าที่เราตรวจสอบพบ และตรงตามเงื่อนไข ซึ่งเราสามารถเอาค่านี้ ส่งไปให้ PHP ในส่วนของ Query String ได้ เราเรียกค่าที่ได้จากวงเล็บนี่ว่า back-reference
เราสามารถตรวจสอบและแยก back-reference ออกได้หลายๆอันใน URL อันเดียว (ดูตัวอย่างต่อๆไป) ซึ่ง back-reference ในวงเล็บแรก เวลาเราอ้างถึงเราก็จะใช้ $1 ส่วนลำดับต่อๆไป ก็จะเป็น $2, $3 ไปเรื่อยๆ

ดังนั้นผู้เยี่ยมชมเว็บ(หรือ bot ก็ได้)ก็จะเห็น url เป็น products/11/ หรือ products/99/ ซึ่ง สั้นและกระชับ โดยหารู้ไม่ว่า เราได้ซ่อน URL ที่ไม่ค่อยสวยงามและอ่านยากไว้เบื้องหลัง


......................... ต่อภาค 2 .....................

ใส่ / ต่อท้าย
บางครั้งผู้เยี่ยมชมเว็บ อาจจะพิมพ์ URL แค่  products/12 ซึ่งเมื่อเข้าไปตรวจสอบใน Pattern ด้านบน ก็จะไม่ตรง เพราะ Pattern ด้านบนจะต้องมี / ต่อท้ายด้วย มันจึงไม่ทำ transparently redirect ให้เรา
เราก็มีวิธีแก้เหตุการณ์แบบนี้ ซึ่งเราก็จะเขียน Rule ใหม่เพิ่มเข้าไปดังนี้
อ้างถึง
RewriteRule ^products/([0-9][0-9])$ products/$1/ [R]
RewriteRule ^products/([0-9][0-9])/$ productinfo.php?prodID=$1

ดังนั้น เมื่อ Server ตรวจเจอ products/12 ก็จะเปลี่ยน URL เป็น products/12/ และแสดง URL ให้บน Browser ด้วย เพราะเราใส่ [R] ไว้ด้วย เมื่อเจอเงื่อนไขบรรทัดที่ 2 ก็เลยไม่มีปัญหาใดๆ ซึ่งมันก็จะส่งเป็น  transparently redirect ไปที่ productinfo.php?prodID=12 ตามความต้องการของเรา


การใช้ Match Quantifiers
จะเป็นว่าตัวอย่างข้างบน เรากำหนดเป็น ^products/([0-9][0-9])$ นั่นหมายความว่า ตัวเลขที่ตามหลัง  products/xx ต้องมี 2 ตัวเท่านั้น ซึ่งก็จะเป็นไปได้สูงสุดแค่ 99 แล้วกรณี productinfo.php?prodID=100 ล่ะจะทำอย่างไร?
ในกรณีนี้ เราสามารถใช้ Quantifiers เป็นตัวกำหนดได้ (Quantifiers มีหลายตัว จะอธิบายต่อไปเรื่อยๆ) ดังตัวอย่าง
อ้างถึง
RewriteRule ^products/([0-9]+)$ products/$1/ [R]

เครื่องหมายบวก + แทนอักษรตั้งแต่ 1 ตัว ถึง n ตัว (ตั้งแต่ 1 ตัวขึ้นไป) ดังนั้น [0-9]+ ก็หมายความว่า เป็นตัวเลข 0-9 ตั้งแต่ 1 หลักขึ้นไป ถ้าเราใส่ products/1 หรือ products/1000 ก็สามารถ Match case นี้ได้แล้วครับ


เดี๋ยวมาต่อครับ...


อ้างถึง
ข้อมูลเพิ่มเติมของ  Rewrite Rule

RewriteRule


Regular expressions

Some hints about the syntax of regular expressions:

Text:
  . Any single character
  [chars] One  of chars
  [^chars] None of chars
  text1|text2 text1 or text2

Quantifiers:
  ? 0 or 1 of the preceding text
  * 0 or N of the preceding text (N > 0)
  + 1 or N of the preceding text (N > 1)

Grouping:
  (text) Grouping of text

Anchors:
  ^ Start of line anchor
  $ End of line anchor

Escaping:
  \ char escape that particular char




Pattern Matching metacharacter Definitions
\     Use before any of the following characters to escape or null the meaning or it. \* \. \$ \+ \[ \]
^    Start matching at this point
$    End point of the match
.    Any character
[]    Starts a range
|    Starts alternative match this|that would mean match this or that
()    starts a back reference point
?    match 0 or 1 time Quantifier
+    match atleast 1 or more times Quantifier
*    match 0 to infinite times Quantifier
{}    match minimum to maximum Quantifier {0,3} match up to 3 times


Range Definitions []
^     Negates the class. [^A-Z]+ means don't match any uppercases
\    Use before any of the following characters to escape or null the meaning or it. [\+]+
-    Range for matching [0-9]+ [a-zA-Z]+


Command Flag
[R]     Redirect you can add an =301 or =302 to change the type.
[F]    Forces the url to be forbidden. 403 header
[G]    Forces the url to be gone 401 header
[L]    Last rule. (You should use this on all your rules that don't link together)
[N]    Next round. Rerun the rules again from the start
[C]    Chains a rewrite rule together with the next rule.
[T]    use T=MIME-type to force the file to be a mime type
[NS]    Use if no sub request is requested
[NC]    Makes the rule case INsensitive
[QSA]    Query String Append use to add to an existing query string
[NE]    Turns of normal escapes that are default in the rewriterule
[PT]    Pass through to the handler (together with mod alias)
   Skip the next rule S=3 skips the next 3 rules
[E]    E=var sets an enviromental variable that can be called by other rules
« แก้ไขครั้งสุดท้าย: 20 ธันวาคม 2007, 16:12:44 โดย tosakp » บันทึกการเข้า

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

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

กระทู้: 5,849



ดูรายละเอียด
« ตอบ #1 เมื่อ: 11 ธันวาคม 2006, 18:02:23 »

ขอบคุณคุณ tosakp มากๆ ครับ
บันทึกการเข้า
danupol
ก๊วนเสียว
*

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

กระทู้: 416



ดูรายละเอียด เว็บไซต์
« ตอบ #2 เมื่อ: 11 ธันวาคม 2006, 18:21:37 »

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

Puong
ก๊วนเสียว
*

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

กระทู้: 209



ดูรายละเอียด
« ตอบ #3 เมื่อ: 11 ธันวาคม 2006, 18:31:21 »

มีประโยชน์ต่อผู้ไม่รู้อย่างผมมากเลย ขอบคุณครับ
บันทึกการเข้า

ีดีใจจังได้ความรู้ดีๆอีกแล้ว
Step9
Verified Seller
เจ้าพ่อบอร์ดเสียว
*

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

กระทู้: 8,518



ดูรายละเอียด เว็บไซต์
« ตอบ #4 เมื่อ: 11 ธันวาคม 2006, 18:40:32 »

Oh my Goodness!!

เชื่อว่าหลายๆคน ต่างก็ต้องการคนที่จะมาให้ความรู้ทางด้านโปรแกรมเมอร์
หรืออย่างน้อยเป็นที่ปรึกษา ทางด้านภาษาComputer ก็ยังดี

ยังไม่อยากจะหวังไปถึงห้อง"ไขปัญหาภาษาคอมฯ"ดอกนะครับ
(เพิ่งจะขอห้อง จดหมายเหตุจากGoogleไปหยกๆ แหะๆ)

แต่การเริ่มต้นแบบนี้นับเป็นสิ่งที่น่าชื่นชมยิ่งครับ ขอบคุณครับ Tongue
บันทึกการเข้า

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

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

กระทู้: 2,476



ดูรายละเอียด
« ตอบ #5 เมื่อ: 11 ธันวาคม 2006, 18:44:47 »

สุดยอดอีกแล้วครับท่าน หุหุ

ขอบคุณมักๆ
บันทึกการเข้า
jane
หัวหน้าแก๊งเสียว
*

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

กระทู้: 1,265



ดูรายละเอียด
« ตอบ #6 เมื่อ: 11 ธันวาคม 2006, 18:57:32 »

ขอบคุณม๊ากกกกกกค่ะ คุณ tosakp

เครื่องหมายเต็มไปหมดเลย - -'

มีอยู่เครื่องหมายนึงที่ชอบมากเป็นพิเศษ
อ้างถึง
$$$$$$$$$
:wink:
บันทึกการเข้า

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

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

กระทู้: 2,153



ดูรายละเอียด
« ตอบ #7 เมื่อ: 11 ธันวาคม 2006, 18:58:57 »

ขอบคุณมากๆคับพี่ต่อ Cheesy
บันทึกการเข้า

August(ซิง)
คนรักเสียว
*

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

กระทู้: 127



ดูรายละเอียด
« ตอบ #8 เมื่อ: 11 ธันวาคม 2006, 20:45:20 »

รักพี่ต่อจริง จริ๊ง ขอบคุณคร้าบ
บันทึกการเข้า

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

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

กระทู้: 882



ดูรายละเอียด
« ตอบ #9 เมื่อ: 11 ธันวาคม 2006, 21:18:15 »

ขอบคุณก่อน แล้วค่อยศึกษาทีหลัง คร๊าลบๆๆๆ
บันทึกการเข้า
EThaiZone
เจ้าพ่อโลลิค่อน
เจ้าพ่อบอร์ดเสียว
*

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

กระทู้: 12,516



ดูรายละเอียด
« ตอบ #10 เมื่อ: 12 ธันวาคม 2006, 00:25:36 »

ดีเลยครับที่มาเขียนแบบนี้ (ผมได้อ่านด้วย  Cheesy  )

เหอๆ ถ้าผมมีเวลาก็อยากมาเขียนให้เหมือนกัน  Sad
แต่เขียนได้ละเอียดกว่าที่ผมรู้อีก
โดยเฉพาะ Command Flag อันนี้ผมไม่รู้เลย
บันทึกการเข้า

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

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

กระทู้: 2,803



ดูรายละเอียด
« ตอบ #11 เมื่อ: 12 ธันวาคม 2006, 00:53:24 »

ขอบคุณมากครับกระจ่างเลยครับ ไม่ต้องไปหาอ่านที่ไหนแล้วว Cheesy  Cheesy  Cheesy
บันทึกการเข้า

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

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

กระทู้: 912



ดูรายละเอียด เว็บไซต์
« ตอบ #12 เมื่อ: 12 ธันวาคม 2006, 01:32:34 »

ขอบคุณพี่ต่อครับ เยี่ยมจริงๆ

ปุ๊ก
บันทึกการเข้า

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

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

กระทู้: 882



ดูรายละเอียด
« ตอบ #13 เมื่อ: 21 ธันวาคม 2006, 15:59:28 »

วันนี้จะได้ใช้แล้ว
มีเรื่องตลกครับ ผมไป search หาใน Google และ ระบุว่าในไทย ปรากฏว่า Google บอกมาหน้านี้ในลำดับต้นๆ เหอะๆ เรียกว่า ไม่ต้องไปไหนไกลเลยครับ สุดท้่ายก็ต้องกลับมาหาความรู้ที่ละเีอียดแบบยิบ ใน thaiseo นี่แหละ

ิแต่ใน thai seo นี่ติดอย่างเดียว หายากมากๆ ให้ตรงประเด็น ผมพยายาม search หา มันไม่เจอแบบตรง ถ้า คำเดียว OK แต่หลายๆคำเริ่มร่วน ครับ

เข้าเืรื่องดีกว่าครับ
Files ทีว่านี้เขียน ใส่ในไหนครับ ผมเข้าใจว่า ใน .htaccess ของ host แต่มันเขียนยังไง

ใช้ nodepad เขียนเลยเหรอครับ แล้วก็ Upload ไป ถูกไหม

server hostforseo ใช้ได้ไหม เห็นมี Files นี้อยู่แต่ผมไม่เคยทำอะไรเลยอ่ะ

ขอบคุณครับ Cheesy
บันทึกการเข้า
EThaiZone
เจ้าพ่อโลลิค่อน
เจ้าพ่อบอร์ดเสียว
*

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

กระทู้: 12,516



ดูรายละเอียด
« ตอบ #14 เมื่อ: 21 ธันวาคม 2006, 16:09:56 »

ถูกครับ ใช้ notepad ก็ได้แล้วเขียนเลย
อัพใส่จะมีผลกับโฟลเดอร์ที่วางไว้ และซัพโฟลเดอร์ที่อยู่ข้างในด้วยครับ  Cheesy
บันทึกการเข้า

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

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

กระทู้: 1,960



ดูรายละเอียด
« ตอบ #15 เมื่อ: 21 ธันวาคม 2006, 16:46:17 »

อ้างจาก: "xex"
แต่ใน thai seo นี่ติดอย่างเดียว หายากมากๆ ให้ตรงประเด็น ผมพยายาม search หา มันไม่เจอแบบตรง ถ้า คำเดียว OK แต่หลายๆคำเริ่มร่วน ครับ


เรื่องของการใช้ฟังก์ชั่นค้นหา ด้านบน ของ PHPBB นั้นต้องแก้ script ให้มันหาแบบไทยๆหน่อยน่ัะครับ
ตอนนี้มันหาแบบฝรั่ง คือมันใช้ Space เป็นตัวแยกคำ ทำให้เรามักจะหาไม่เจอ
เช่น ถ้าเราพิมพ์คำว่า "เสียวบอร์ด" ในคำค้น
จะไม่เจอคำว่า "ไทยเสียวบอร์ดแหล่งรวมคนชอบ SEO"
แต่ถ้ากระทู้ไหนมีคำว่า "ไทย เสียวบอร์ด แหล่งรวมคนชอบ SEO"
ประมาณนี้

ก็เลยทำให้ใช้ประโยชน์จากฟังก์ชั่นการค้นหาได้ไม่เต็มที่

ถ้าได้แก้ script PHPBB นิดนึงนะ จะจ๊าบมากๆเลยล่ะครับพี่น้อง

ต้องแจ้งคุณพิซซ่ามั๊งครับ
บันทึกการเข้า

mv
Newbie
*

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

กระทู้: 1



ดูรายละเอียด
« ตอบ #16 เมื่อ: 21 ธันวาคม 2006, 20:52:15 »

คุณ tosakp ผมสนใจมากเลย ลองเอาไปใช้แล้วได้ประโยชน์มากเลยครับ

แต่ผมติดอยู่นิดนึงคือคำสั่ง [R] เหมือนมันไม่ทำงานอะครับ ผมไม่อยากให้ user ต้องพิมพ์ / ตามหลัง url ผมเลยใช้วิธีที่คุณบอก แต่พอใส่ [R] ก็เข้าหน่า errer เลยอะคับ

โค๊ด:
RewriteEngine on 
RewriteRule ^(.*)/$ blog/user.php?username=$1 [L]


อันนี้เวลาพิมพ์ต้อง www.domanname.com/sompong/

แต่อยากเอาแค่นี้  www.domanname.com/sompong

มีวิธีรึปล่าวคับ
บันทึกการเข้า
Step9
Verified Seller
เจ้าพ่อบอร์ดเสียว
*

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

กระทู้: 8,518



ดูรายละเอียด เว็บไซต์
« ตอบ #17 เมื่อ: 21 ธันวาคม 2006, 21:27:57 »

ระหว่างเขียนเองกับ ใช้เว็บแปลงนี่ได้ผลOKเหมือนกันไหมครับ
http://www.thaiseoboard.com/vi....php?t=3993&highlight=tiny
บันทึกการเข้า

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

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

กระทู้: 1,960



ดูรายละเอียด
« ตอบ #18 เมื่อ: 21 ธันวาคม 2006, 23:42:28 »

อ้างจาก: "mv"
คุณ tosakp ผมสนใจมากเลย ลองเอาไปใช้แล้วได้ประโยชน์มากเลยครับ

แต่ผมติดอยู่นิดนึงคือคำสั่ง [R] เหมือนมันไม่ทำงานอะครับ ผมไม่อยากให้ user ต้องพิมพ์ / ตามหลัง url ผมเลยใช้วิธีที่คุณบอก แต่พอใส่ [R] ก็เข้าหน่า errer เลยอะคับ

โค๊ด:
RewriteEngine on 
RewriteRule ^(.*)/$ blog/user.php?username=$1 [L]


อันนี้เวลาพิมพ์ต้อง www.domanname.com/sompong/

แต่อยากเอาแค่นี้  www.domanname.com/sompong

มีวิธีรึปล่าวคับ



ลองดูอันนี้ดูนะครับ
อ้างถึง
rewriteEngine on
rewriteBase /
rewriteCond %{REQUEST_URI} !/$
rewriteCond %{REQUEST_URI} !\.
rewriteRule ^(.+)$ blog/user.php?username=$1
rewriteRule ^(.+)/$ blog/user.php?username=$1
บันทึกการเข้า

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

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

กระทู้: 871



ดูรายละเอียด
« ตอบ #19 เมื่อ: 21 ธันวาคม 2006, 23:52:52 »

อ้างจาก: "tosakp"
อ้างจาก: "mv"
คุณ tosakp ผมสนใจมากเลย ลองเอาไปใช้แล้วได้ประโยชน์มากเลยครับ

แต่ผมติดอยู่นิดนึงคือคำสั่ง [R] เหมือนมันไม่ทำงานอะครับ ผมไม่อยากให้ user ต้องพิมพ์ / ตามหลัง url ผมเลยใช้วิธีที่คุณบอก แต่พอใส่ [R] ก็เข้าหน่า errer เลยอะคับ

โค๊ด:
RewriteEngine on 
RewriteRule ^(.*)/$ blog/user.php?username=$1 [L]


อันนี้เวลาพิมพ์ต้อง www.domanname.com/sompong/

แต่อยากเอาแค่นี้  www.domanname.com/sompong

มีวิธีรึปล่าวคับ



ลองดูอันนี้ดูนะครับ
อ้างถึง
rewriteEngine on
rewriteBase /
rewriteCond %{REQUEST_URI} !/$
rewriteCond %{REQUEST_URI} !\.
rewriteRule ^(.+)$ blog/user.php?username=$1
rewriteRule ^(.+)/$ blog/user.php?username=$1


URL แบบมี / ปิดท้าย ดีที่สุดนะครับ ฝึกพิมพ์ให้ติดไว้ Tongue
บันทึกการเข้า

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