ioff
ก๊วนเสียว
พลังน้ำใจ: 5
ออฟไลน์
กระทู้: 275
|
 |
« เมื่อ: 08 เมษายน 2009, 14:39:51 » |
|
 รบกวนสอบถามวิธีเปลี่ยนลิงค์ค่ะ จาก sitename.com/club.php?id=1 เป็น sitename.com/nameclub คือกำลังทำเว็บแฟนคลับอยู่อ่ะค่ะ และกำลังติดปัญหาว่า ต้องการให้การเรียกหน้าคลับแต่ละครั้งเป็นรูปแบบ ชื่อเว็บ.คอม/ชื่อคลับนั้นๆ แต่ว่าที่ผ่านมาได้เขียนระบบไว้ว่า ให้เรียกดูหน้าเว็บจากหน้า club.php ตามตัวแปร get ที่แทนID คลับนั้นๆ ที่นี้พอจะให้เปลี่ยนมาเป็นแบบนี้ก็เลย นึกวิธีไม่ออกอ่ะค่ะ ว่าวิธีมีวิธีไหนบ้าง เพราะตอนนี้คิดออกแต่ว่า ต้องสร้าง โฟเดอร์ใหม่ตามชื่อคลับนั้น ๆ สร้างหน้าหน้า Redirect ให้กลับมาที่ หน้า club.php อีกที ซึ่งถ้าเป็นไปได้ไม่ค่อยอยากใช้วิธีนี้เลยค่ะ เพราะว่า มีคลับที่ถูกสร้างขึ้นมาเยอะ แล้ว .... มิเช่นนั้นต้องกลับไปสร้างนั่งสร้างโพเดอร์เอง..บานเลย ช่วยแนะนำทีนะค่ะ .... มึนค่ะตอนนี้ .... 
|
|
|
บันทึกการเข้า
|
|
|
|
ioff
ก๊วนเสียว
พลังน้ำใจ: 5
ออฟไลน์
กระทู้: 275
|
 |
« ตอบ #1 เมื่อ: 08 เมษายน 2009, 14:53:02 » |
|
อย่าง .htaccess redirect นี้เอามาใช้ กรณีนี้ได้ รึป่าวค่ะ
|
|
|
บันทึกการเข้า
|
|
|
|
ioff
ก๊วนเสียว
พลังน้ำใจ: 5
ออฟไลน์
กระทู้: 275
|
 |
« ตอบ #2 เมื่อ: 09 เมษายน 2009, 10:48:33 » |
|
|
|
|
บันทึกการเข้า
|
|
|
|
RaulGonzales
สมุนแก๊งเสียว
พลังน้ำใจ: 22
ออฟไลน์
กระทู้: 721
|
 |
« ตอบ #3 เมื่อ: 09 เมษายน 2009, 13:43:29 » |
|
อย่าง .htaccess redirect นี้เอามาใช้ กรณีนี้ได้ รึป่าวค่ะ
ได้ครับเเต่ไม่รู้ทำยังไง อยากรู้เหมือนกัน 
|
|
|
บันทึกการเข้า
|
|
|
|
css
บุคคลทั่วไป
|
 |
« ตอบ #4 เมื่อ: 09 เมษายน 2009, 13:57:00 » |
|
ลองศึกษา .htaccess ดูครับ
host ต้องรองรับ โหมด Rewrite
ไฟล์.htaccess Options +FollowSymlinks RewriteEngine on RewriteRule ^([0-9]+)/?$ index.php?id=$1 [L,QSA]
แค่นี้เองครับมันก็จะส่งค่า จาก
h-ttp://w-ww.xxxx.com/index.php?id=xx เป็น h-ttp://w-ww.xxxx.com/xx แทน
|
|
|
บันทึกการเข้า
|
|
|
|
hermiss
หัวหน้าแก๊งเสียว
พลังน้ำใจ: 95
ออฟไลน์
กระทู้: 2,761
|
 |
« ตอบ #5 เมื่อ: 09 เมษายน 2009, 14:28:55 » |
|
/?$ มันต้องใส่ตลอดเลยเหรอ สำคัญอย่างไร [L,QSA] หมายความว่าอะไร เห็นมีหลายตัวเหลือเกิน ป.ล. มีที่ไหนแนะนำการเขียนเป็นภาษาไทยไหม๊อะ
|
|
|
บันทึกการเข้า
|
|
|
|
niceke
หัวหน้าแก๊งเสียว
พลังน้ำใจ: 62
ออฟไลน์
กระทู้: 1,359
|
 |
« ตอบ #6 เมื่อ: 09 เมษายน 2009, 16:57:10 » |
|
ตามนี้เลยครับ Options +FollowSymlinks RewriteEngine on RewriteRule ^sitename.com/([^/]*)-([0-9]*) sitename.com/club.php?name=$1&id=$2 [L] ถ้าจะเอาเป็นชื่อ club ด้วยต้องใส่ค่า ชื่อของ club(name) ไปด้วย URL ก็จะได้เป็น sitename.com/clubabc-1 ถูกป่าวหว่า  ลองดูและกันนะครับ 
|
|
|
บันทึกการเข้า
|
เดือนละแสนไม่ใช่ฝัน เพราะเราก็ทำได้
|
|
|
ioff
ก๊วนเสียว
พลังน้ำใจ: 5
ออฟไลน์
กระทู้: 275
|
 |
« ตอบ #7 เมื่อ: 16 เมษายน 2009, 16:51:48 » |
|
ลองศึกษา .htaccess ดูครับ
host ต้องรองรับ โหมด Rewrite
ไฟล์.htaccess Options +FollowSymlinks RewriteEngine on RewriteRule ^([0-9]+)/?$ index.php?id=$1 [L,QSA]
แค่นี้เองครับมันก็จะส่งค่า จาก
h-ttp://w-ww.xxxx.com/index.php?id=xx เป็น h-ttp://w-ww.xxxx.com/xx แทน
$ index.php นี้แทนชื่อเพจเลยใช่รึป่าวค่ะ $1 [L,QSA] นี้แทน ค่า get ที่เดิมเป็นเลขที่คลับรึป่าวค่ะ แล้ว [L,QSA] คืออะไรรค่ะ .. ท่าจะต้องศึกษาอีกเยอะ มีหนังสือ หรือแหล่งศึกษาที่เป็นภาษาไทยแล้ว รึป่าวค่ะ เย็นนี้ว่าจะไปซื้อหนังสือแล้วค่ะเนี้ย !!
|
|
|
บันทึกการเข้า
|
|
|
|
ioff
ก๊วนเสียว
พลังน้ำใจ: 5
ออฟไลน์
กระทู้: 275
|
 |
« ตอบ #8 เมื่อ: 16 เมษายน 2009, 16:57:05 » |
|
ตามนี้เลยครับ Options +FollowSymlinks RewriteEngine on RewriteRule ^sitename.com/([^/]*)-([0-9]*) sitename.com/club.php?name=$1&id=$2 [L] ถ้าจะเอาเป็นชื่อ club ด้วยต้องใส่ค่า ชื่อของ club(name) ไปด้วย URL ก็จะได้เป็น sitename.com/clubabc-1 ถูกป่าวหว่า  ลองดูและกันนะครับ  ค่า $1 $2 นี้เอามาจากไหนค่ะ คือไม่เข้าใจว่า เมื่ออยู่ในไฟล์ .htaccess แล้ว ค่า $ นี้จะเท่ากับอะไร
|
|
|
บันทึกการเข้า
|
|
|
|
tung148
สมุนแก๊งเสียว
พลังน้ำใจ: 36
ออฟไลน์
กระทู้: 879
|
 |
« ตอบ #9 เมื่อ: 16 เมษายน 2009, 16:59:51 » |
|
|
|
|
บันทึกการเข้า
|
|
|
|
ioff
ก๊วนเสียว
พลังน้ำใจ: 5
ออฟไลน์
กระทู้: 275
|
 |
« ตอบ #10 เมื่อ: 16 เมษายน 2009, 19:42:15 » |
|
ขอบคุณ ทุกๆ คนมากเลยค่ะ เบื้องต้นตอนนี้ทำได้แล้ว แต่ ยังติดอยู่ที่ว่า ถ้าเป็นชื่อคลับภาษาไทย กับ ชื่อที่มีช่องว่า มันแสดงไม่ได้ค่ะ ทำไงดีค่ะ
|
|
|
บันทึกการเข้า
|
|
|
|
hermiss
หัวหน้าแก๊งเสียว
พลังน้ำใจ: 95
ออฟไลน์
กระทู้: 2,761
|
 |
« ตอบ #11 เมื่อ: 16 เมษายน 2009, 20:32:56 » |
|
เซฟไฟล์ .htaccess เป็น UTF-8 แทน ANSI นะ (ใช้ notepad ทำก็ได้) แต่ชื่อคลับต้องใช้เป็นภาษาไทยเลยนะ เอา %25%a3%20 แบบนี้มาใส่ไม่ได้มันจะ error 500
|
|
|
บันทึกการเข้า
|
|
|
|
ioff
ก๊วนเสียว
พลังน้ำใจ: 5
ออฟไลน์
กระทู้: 275
|
 |
« ตอบ #12 เมื่อ: 17 เมษายน 2009, 11:09:43 » |
|
ต้องขอบคุณ ทุกๆ คำแนะนำมากเลยนะค่ะ ... ตอนนี้ลังเป็นรูปเป็นร่างมากขึ้นแล้ว ค่ะ แต่ก็ยังต้องมาข้อคำชี้แนะต่ออยู่ดี .  รบกวนด้วยนะค่ะ คือ จากที่เปลี่ยนยังใช้รูปแบบ url/ชื่อคลับภาษาไทยและช่องว่าง ยังไม่ได้นั้น ตอนนี้ก็ได้เปลี่ยนไฟล์ .htaccess เป็น utf-8 แล้วค่ะแล้วก็เขียนโค๊ตว่า Options +FollowSymlinks RewriteEngine on RewriteRule ^([ก-ฮA-Za-z0-9-]+)/?$ club.php?cname=$1&cid=$2 [L] แต่ก็ยัง error server 500 อยู่เฉพาะกรณีที่ระบุเป็นภาษาไทยหรือคำที่มีช่องว่างค่ะ ถ้าเป็นอังกฤษไม่มีช่องว่าง ก็ได้ปกติค่ะ ควร แก้ไขยังไงบ้างค่ะ ปล. ไปหาหนังสือเกี่ยวกับ .htaccess ไม่มีเลยค่ะ
|
|
|
บันทึกการเข้า
|
|
|
|
ioff
ก๊วนเสียว
พลังน้ำใจ: 5
ออฟไลน์
กระทู้: 275
|
 |
« ตอบ #13 เมื่อ: 17 เมษายน 2009, 11:58:32 » |
|
จะเกี่ยวกันไหม ค่ะ ที่ในเวบเพจ กำหนด charset=windows-874
|
|
|
บันทึกการเข้า
|
|
|
|
mikeyx
Verified Seller
เจ้าพ่อบอร์ดเสียว
พลังน้ำใจ: 271
ออฟไลน์
กระทู้: 4,045
|
 |
« ตอบ #14 เมื่อ: 17 เมษายน 2009, 12:03:12 » |
|
เข้ารหัสก่อนส่งครับ
urlrewrite
|
|
|
บันทึกการเข้า
|
|
|
|
ioff
ก๊วนเสียว
พลังน้ำใจ: 5
ออฟไลน์
กระทู้: 275
|
 |
« ตอบ #15 เมื่อ: 17 เมษายน 2009, 12:10:24 » |
|
เข้ารหัสก่อนส่งครับ
urlrewrite
หมายถึง เข้ารหัสจาก windows-874 มาเป็น utf-8 หรอค่ะ  เข้ากันยังไงน้อออ รึว่าจะเปลี่ยน เวบเพจ มาเป็น utf-8 เลยค่ะ ท่าจะง่ายกว่า..ลองไปทำดูก่อนค่ะ  เปลี่ยน เพจเป็น utf-8 ก็ไม่สำเร็จค่ะ  หรือ ว่า ถ้าต้อง /ภาษาไทย จะไม่มีลู่ทางทำได้เลยรึป่าวค่ะ ข้อจำกัดป่าว อ่ะ
|
|
« แก้ไขครั้งสุดท้าย: 17 เมษายน 2009, 15:31:19 โดย ioff »
|
บันทึกการเข้า
|
|
|
|
art4eat
Newbie
พลังน้ำใจ: 0
ออฟไลน์
กระทู้: 22
|
 |
« ตอบ #16 เมื่อ: 14 มิถุนายน 2011, 17:22:02 » |
|
อยากสอบถามเพิ่มเต็มคับ จากตัวอย่าง
h-ttp://w-ww.xxxx.com/index.php?id=xx เป็น h-ttp://w-ww.xxxx.com/ชื่อที่ตั้งเอง แล้วบันทึกลองในดาต้าเบสฟิลด์เดียวกับ id=xx นั้นๆ
จะมีวิธีตรวจสอบได้หรือเปล่าคับ
|
|
|
บันทึกการเข้า
|
|
|
|
ohmohm
เจ้าพ่อบอร์ดเสียว
พลังน้ำใจ: 170
ออฟไลน์
กระทู้: 3,098
|
 |
« ตอบ #17 เมื่อ: 14 มิถุนายน 2011, 23:22:16 » |
|
QSA = Query String Append คือถ้ามี query string ( สิ่งที่อยู่หลัง ? มันจะเอาเข้าไปปะท้ายด้วย ) เช่น RewriteRule ^([0-9]+)/?$ index.php?id=$1 [L,QSA] เมื่อกรอก ( เรืยก ) -http://www.xxxx.com/xx จะไปดึงมาจาก -http://www.xxxx.com/index.php?id=xx แต่เมื่อกรอก -http://www.xxxx.com/xx?_ESCAPED_FRAGMENT_=yyy จะไปดึงมาจาก -http://www.xxxx.com/index.php?id=xx&_ESCAPED_FRAGMENT_=yyy เกียวกับ mod_rewrite .htaccess http://httpd.apache.org/docs/2.0/misc/rewriteguide.html  ปล ลองดู rewritemap แบบที่ใช้ text file ธรรมดา ก็น่าสนนะ http://httpd.apache.org/docs/2...od/mod_rewrite.html#rewritemap 
|
|
« แก้ไขครั้งสุดท้าย: 14 มิถุนายน 2011, 23:23:24 โดย ohmohm »
|
บันทึกการเข้า
|
|
|
|
|