สอบถามวิธีเปลี่ยนลิงค์จาก sitename.com/club.php?id=1 เป็น sitename.com/nameclub

เริ่มโดย ioff, 08 เมษายน 2009, 14:39:51

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

ioff

 :-X

รบกวนสอบถามวิธีเปลี่ยนลิงค์ค่ะ
จาก sitename.com/club.php?id=1 เป็น sitename.com/nameclub

คือกำลังทำเว็บแฟนคลับอยู่อ่ะค่ะ   และกำลังติดปัญหาว่า ต้องการให้การเรียกหน้าคลับแต่ละครั้งเป็นรูปแบบ  ชื่อเว็บ.คอม/ชื่อคลับนั้นๆ

แต่ว่าที่ผ่านมาได้เขียนระบบไว้ว่า ให้เรียกดูหน้าเว็บจากหน้า  club.php ตามตัวแปร get ที่แทนID คลับนั้นๆ  ที่นี้พอจะให้เปลี่ยนมาเป็นแบบนี้ก็เลย นึกวิธีไม่ออกอ่ะค่ะ ว่าวิธีมีวิธีไหนบ้าง เพราะตอนนี้คิดออกแต่ว่า ต้องสร้าง โฟเดอร์ใหม่ตามชื่อคลับนั้น ๆ  สร้างหน้าหน้า Redirect ให้กลับมาที่ หน้า club.php อีกที ซึ่งถ้าเป็นไปได้ไม่ค่อยอยากใช้วิธีนี้เลยค่ะ   เพราะว่า มีคลับที่ถูกสร้างขึ้นมาเยอะ แล้ว  .... มิเช่นนั้นต้องกลับไปสร้างนั่งสร้างโพเดอร์เอง..บานเลย



ช่วยแนะนำทีนะค่ะ  .... มึนค่ะตอนนี้   .... :-X

www.thaihoro.co.cc

ioff

อย่าง .htaccess redirect นี้เอามาใช้ กรณีนี้ได้ รึป่าวค่ะ

www.thaihoro.co.cc

ioff


www.thaihoro.co.cc

RaulGonzales

อ้างถึงจาก: ioff ใน 08 เมษายน 2009, 14:53:02
อย่าง .htaccess redirect นี้เอามาใช้ กรณีนี้ได้ รึป่าวค่ะ

ได้ครับเเต่ไม่รู้ทำยังไง อยากรู้เหมือนกัน :)
ลงประกาศ ซื้อ,ขาย,เช่า,บ้าน,คอนโด,ที่อยู่ กับ www.properlive.com

css

ลองศึกษา .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

/?$ มันต้องใส่ตลอดเลยเหรอ สำคัญอย่างไร
[L,QSA] หมายความว่าอะไร เห็นมีหลายตัวเหลือเกิน
ป.ล. มีที่ไหนแนะนำการเขียนเป็นภาษาไทยไหม๊อะ

niceke

ตามนี้เลยครับ

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

ถูกป่าวหว่า ??? ลองดูและกันนะครับ :P
เดือนละแสนไม่ใช่ฝัน เพราะเราก็ทำได้

ioff

อ้างถึงจาก: css ใน 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  แทน



$ index.php นี้แทนชื่อเพจเลยใช่รึป่าวค่ะ 
$1 [L,QSA] นี้แทน ค่า get ที่เดิมเป็นเลขที่คลับรึป่าวค่ะ 
แล้ว [L,QSA] คืออะไรรค่ะ

.. ท่าจะต้องศึกษาอีกเยอะ มีหนังสือ หรือแหล่งศึกษาที่เป็นภาษาไทยแล้ว รึป่าวค่ะ  เย็นนี้ว่าจะไปซื้อหนังสือแล้วค่ะเนี้ย !!



www.thaihoro.co.cc

ioff

อ้างถึงจาก: niceke ใน 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

ถูกป่าวหว่า ??? ลองดูและกันนะครับ :P


ค่า $1 $2 นี้เอามาจากไหนค่ะ  คือไม่เข้าใจว่า เมื่ออยู่ในไฟล์ .htaccess แล้ว ค่า $ นี้จะเท่ากับอะไร



www.thaihoro.co.cc


ioff

ขอบคุณ ทุกๆ คนมากเลยค่ะ เบื้องต้นตอนนี้ทำได้แล้ว  แต่ ยังติดอยู่ที่ว่า ถ้าเป็นชื่อคลับภาษาไทย กับ ชื่อที่มีช่องว่า มันแสดงไม่ได้ค่ะ ทำไงดีค่ะ



www.thaihoro.co.cc

hermiss

เซฟไฟล์ .htaccess เป็น UTF-8 แทน ANSI นะ (ใช้ notepad ทำก็ได้) แต่ชื่อคลับต้องใช้เป็นภาษาไทยเลยนะ เอา %25%a3%20 แบบนี้มาใส่ไม่ได้มันจะ error 500

ioff

ต้องขอบคุณ ทุกๆ คำแนะนำมากเลยนะค่ะ  ... ตอนนี้ลังเป็นรูปเป็นร่างมากขึ้นแล้ว ค่ะ   แต่ก็ยังต้องมาข้อคำชี้แนะต่ออยู่ดี . :P รบกวนด้วยนะค่ะ

คือ จากที่เปลี่ยนยังใช้รูปแบบ  url/ชื่อคลับภาษาไทยและช่องว่าง ยังไม่ได้นั้น  ตอนนี้ก็ได้เปลี่ยนไฟล์ .htaccess เป็น utf-8 แล้วค่ะแล้วก็เขียนโค๊ตว่า

Options +FollowSymlinks
RewriteEngine on
RewriteRule ^([ก-ฮA-Za-z0-9-]+)/?$ club.php?cname=$1&cid=$2 [L]

แต่ก็ยัง error server  500 อยู่เฉพาะกรณีที่ระบุเป็นภาษาไทยหรือคำที่มีช่องว่างค่ะ ถ้าเป็นอังกฤษไม่มีช่องว่าง ก็ได้ปกติค่ะ

ควร แก้ไขยังไงบ้างค่ะ

ปล. ไปหาหนังสือเกี่ยวกับ .htaccess ไม่มีเลยค่ะ





www.thaihoro.co.cc

ioff

จะเกี่ยวกันไหม ค่ะ ที่ในเวบเพจ กำหนด charset=windows-874

www.thaihoro.co.cc

mikeyx


ioff

อ้างถึงจาก: mikeyx ใน 17 เมษายน 2009, 12:03:12
เข้ารหัสก่อนส่งครับ

urlrewrite

หมายถึง เข้ารหัสจาก windows-874 มาเป็น utf-8 หรอค่ะ  :-X เข้ากันยังไงน้อออ

รึว่าจะเปลี่ยน เวบเพจ มาเป็น utf-8 เลยค่ะ ท่าจะง่ายกว่า..ลองไปทำดูก่อนค่ะ

:-X  เปลี่ยน เพจเป็น utf-8 ก็ไม่สำเร็จค่ะ

:o  หรือ ว่า ถ้าต้อง /ภาษาไทย  จะไม่มีลู่ทางทำได้เลยรึป่าวค่ะ   ข้อจำกัดป่าว อ่ะ

www.thaihoro.co.cc

art4eat

อยากสอบถามเพิ่มเต็มคับ จากตัวอย่าง

h-ttp://w-ww.xxxx.com/index.php?id=xx   เป็น
h-ttp://w-ww.xxxx.com/ชื่อที่ตั้งเอง แล้วบันทึกลองในดาต้าเบสฟิลด์เดียวกับ  id=xx นั้นๆ   

จะมีวิธีตรวจสอบได้หรือเปล่าคับ

ohmohm

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.0/mod/mod_rewrite.html#rewritemap