รบกวนสอบถามเรื่อง mod rewrite ด้วยค่ะ

เริ่มโดย amtis, 26 เมษายน 2011, 23:58:53

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

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

amtis

คือใช้เว็บ http://www.generateit.net/mod-rewrite/ ในการทำ mod rewrite อ่ะคะ

The original URL:
hxxp://www.abcshop.com/?action=cat_list&cat_name=สมุนไพร&menu=2&cat=1

The rewritten URL:
hxxp://www.adcshop.com/สมุนไพร.html


ผลของ Rewrite ที่นำไปวางใน .htaccess คือ

RewriteEngine On
RewriteRule ^([^/]*)\.html$ /?action=cat_list&cat_name=$1&menu=2&cat=1 [L]

แต่เมื่อนำไปใช้จิง ปรากฎว่า ไม่ว่าจะคลิกที่เมนู อะไร ก็จะไปแค่หน้าที่เขียน rewrite อย่างเดียว เนื่องจาก ค่า id มันไม่เปลี่ยนไป
คือมันจะวิ่งไปที่ ?action=cat_list&cat_name=$1&menu=2&cat=1 [L]

คำถามคือ หากเราต้องการเขียน code เพื่อเปลี่ยนค่า id คือเลข 1 จะมีวิธีหรือเปล่าคะ

รบกวนผู้รู้ด้วยนะคะ ขอบคุณมาก ๆ ค่ะ

kudjung

คงต้องเขียนโปรแกรมในส่วนของ php ดักค่า cat_name ที่ได้ไปตรวจสอบกับฐานข้อมูลเพื่อหาค่า cat id แต่ถ้าชื่อ cat_name ซ้ำกันก็ซวยไป  :P :P

Pang25441

สมุนไพร-1-2.html / สมุนไพร-2-4.html

อะไรแบบนี้ดีไหมครับ(คล้ายๆดิสคัส หุหุ)
Click!!
ปรวชฺชานุปสฺสิสฺส นิจฺจํ อุชฺฌานสญฺญิโน
อาสวา ตสฺส วฑฺฒนฺติ อารา โส อาสวกฺขยา

คนที่เห็นแต่โทษผู้อื่น คอยแต่เพ่งโทษนั้น
อาสวะก็เพิ่มพูน เขายังไกลจากความสิ้นอาสวะ
[ขุ.ธ. ๒๕/๔๙]

amtis

 :wanwan017: ขอบคุณค่าา จะลองไปเขียนดูอีกครั้งค่าาาาา

amtis

พอจะมีวิธีอื่นอีกหรือเปล่าคะ :wanwan004:

kudjung

อ้างถึงจาก: amtis ใน 27 เมษายน 2011, 01:47:12
พอจะมีวิธีอื่นอีกหรือเปล่าคะ :wanwan004:

ไม่ต้อง mod rewrite ง่ายกว่าส่งค่าแบบ  ?action=cat_list&cat_name=สมุนไพร แค่นี้ก็ดีแล้วครับ
หลังๆผมก็ยังเลิกใช้เลย เพราะภาษาไทยมันมีปัญหากับ facebook มัน add หน้านั้นเข้า facebook ไม่ได้ เพราะ URL มันยาวเกิน

klockwork

อ้างถึงจาก: kudjung ใน 27 เมษายน 2011, 11:43:37
อ้างถึงจาก: amtis ใน 27 เมษายน 2011, 01:47:12
พอจะมีวิธีอื่นอีกหรือเปล่าคะ :wanwan004:

ไม่ต้อง mod rewrite ง่ายกว่าส่งค่าแบบ  ?action=cat_list&cat_name=สมุนไพร แค่นี้ก็ดีแล้วครับ
หลังๆผมก็ยังเลิกใช้เลย เพราะภาษาไทยมันมีปัญหากับ facebook มัน add หน้านั้นเข้า facebook ไม่ได้ เพราะ URL มันยาวเกิน

เห็นด้วยกับคุณ kudjung ครับ

ไม่ก็ rewrite แต่เป็น url ภาษาอังกฤษครับ

ขอโทษครับที่ตอบไม่ถูกคำถาม :wanwan017:

mikeyx

ผมไม่ใช้ mod rewrite นะถ้าจะไม่ให้มีตัวเลข

ในตารางเพิ่มฟิวมาอีกหนึ่งอันที่ก็บ URL ไปเลย

เวลาเก็บก็แปลง url ก่อนเช่น "รบกวนสอบถามเรื่อง-mod-rewrite-ด้วยค่ะ.html"
จะถูกเก็บไว้ เวลาเรียกใช้งานก็ ใช้คำสั่ว where url='$_GET[url]' ไปเลยครับ

เขียนเช็คด้วยนะถ้ามันซ้ำกัน ก็ให้เป็น "รบกวนสอบถามเรื่อง-mod-rewrite-ด้วยค่ะ-1.html"
"รบกวนสอบถามเรื่อง-mod-rewrite-ด้วยค่ะ-2.html"

แต่ที่ผมไม่เชคคือำเว็บปั่น 1 เว็บมี 5 บทความไม่ต้อเขียนโปรแกรมให้ยุ่งยาก  :wanwan004: ที่จริง html เลยก็ได้แต่มันเสียเวลาเปลี่ยน template ใหม่

amtis

อ้างถึงจาก: mikeyx ใน 27 เมษายน 2011, 13:32:45
ผมไม่ใช้ mod rewrite นะถ้าจะไม่ให้มีตัวเลข

ในตารางเพิ่มฟิวมาอีกหนึ่งอันที่ก็บ URL ไปเลย

เวลาเก็บก็แปลง url ก่อนเช่น "รบกวนสอบถามเรื่อง-mod-rewrite-ด้วยค่ะ.html"
จะถูกเก็บไว้ เวลาเรียกใช้งานก็ ใช้คำสั่ว where url='$_GET[url]' ไปเลยครับ

เขียนเช็คด้วยนะถ้ามันซ้ำกัน ก็ให้เป็น "รบกวนสอบถามเรื่อง-mod-rewrite-ด้วยค่ะ-1.html"
"รบกวนสอบถามเรื่อง-mod-rewrite-ด้วยค่ะ-2.html"

แต่ที่ผมไม่เชคคือำเว็บปั่น 1 เว็บมี 5 บทความไม่ต้อเขียนโปรแกรมให้ยุ่งยาก  :wanwan004: ที่จริง html เลยก็ได้แต่มันเสียเวลาเปลี่ยน template ใหม่


ขอบคุณมากค่ะ สำหรับคำตอบ จะลองกลับไปทำดูนะคะ  :wanwan017:

amtis

ขอบคุณทุก ๆ คำตอบนะคะ  :wanwan019: คลายปมปัญหาที่ติดมาหลายวันได้บางส่วนเลยค่ะ  :wanwan017:

ohmohm

แบบนี้ได้ไหม

RewriteEngine On
RewriteRule ^([^/]*)\.html$ /?action=cat_list&cat_name=$1&menu=2&cat=1 [L]
RewriteRule ^([^/]*)\.html/([1-9][0-9]*)$ /?action=cat_list&cat_name=$1&menu=2&cat=$2 [L]

--www.adcshop.com/สมุนไพร.html
--www.adcshop.com/สมุนไพร.html/1
--www.adcshop.com/สมุนไพร.html/10