[Mod_Rewrite] เขียนยังไงให้มันสนใจเฉพาะสองวรรคแรกครับ ?

เริ่มโดย UnzO, 23 กันยายน 2009, 03:04:36

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

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

UnzO

คือผมมี URL แบบนี้ครับ

http://localhost/view/EEE000125F/Bla-Bla/Bla-Bla/


ผมอยากได้เฉพาะ EEE000125F ออกมาหน่ะครับ


ที่ผมเขียนไว้เป็นแบบนี้

RewriteRule ^view/(.*)/(.*)/$ /detail.php?itemid=$1 [L]

แต่พอเวลาที่มันมีพวก อักษร ยาวๆ มันจะ Error หาหน้า Page ไม่เจอครับเช่นอันนี้

http://mydomain.com/view/0470038306/Outlook-2007-For-Dummies-(For-Dummies-(Computer%2FTech))/

ใครพอจะมีแนวทางบ้างครับ  :P

ohmohm

ผมว่า . ใน (.*) น่าจะรวมถึงตัวอักษร / เองด้วย เวลามี / เยอะๆ mod_rewrite มันคงแปลงแบบงงงง
เปลี่ยน (.*) เป็น ([^/]*) หรือ ([^/]+) น่าจะหาย ยังไม่ได้ลองเองนะครับ ใช้ * ยอมข้อความว่างๆ ด้วย ( คือยอม // ) แต่ + ต้องยาวอย่างน้อย 1 ตัวอักษร
http://corz.org/serv/tricks/htaccess2.php

VaKimZa

รวบรวมประโยคที่น่าสนใจ มาไว้ต้นๆ ก่อนแต่ยังไม่ต้องเฉลยเนื้อหา  :'(
จำหน่าย Dell PowerEdge R210 II 1240v3 3.40 GHz Ram 8GB HDD 1 TB เพียง 35,900 บาท

รับวางเซิร์ฟเวอร์ Co-Location @ Cs Loxinfo CyberWorld (รัชดา) เพียง 2,500 บาท/เดือน

รับจ้าง Config Server จูนขั้นเทพ รับประกัน เร็ว แร๊ง รองรับขึ้น ( มีผลงาน Report ลูกค้า )

WebSite : [direct=http://www.fever-hosting.com]WWW.FEVER-HOSTING.COM[/direct]

ohmohm

อ้างถึงจาก: VaKimZa ใน 23 กันยายน 2009, 19:02:05
รวบรวมประโยคที่น่าสนใจ มาไว้ต้นๆ ก่อนแต่ยังไม่ต้องเฉลยเนื้อหา  :'(
???  ต้องการตอบกระทู้นี้หรือเปล่า http://www.thaiseoboard.com/index.php/topic,80024.20.html

pugkung

อ้างถึงจาก: ohmohm ใน 23 กันยายน 2009, 19:13:39
อ้างถึงจาก: VaKimZa ใน 23 กันยายน 2009, 19:02:05
รวบรวมประโยคที่น่าสนใจ มาไว้ต้นๆ ก่อนแต่ยังไม่ต้องเฉลยเนื้อหา  :'(
???  ต้องการตอบกระทู้นี้หรือเปล่า http://www.thaiseoboard.com/index.php/topic,80024.20.html

สงสัยเหมือนกัน

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

ตอบ จขกท.
ต้องถามก่อนว่า EEE000125F  EEE********F มันเป็นค่าคงที่แบบนี้หรือปล่าวแล้วเปลี่ยนแต่ตัวเลข
ถ้าแบบนี้ก็ ลอง (EEE[0-9]+F) แทน (.*) ดูนะคครับ
แต่ถ้าไม่ ก็ลอง ([A-Z0-9]+) แทน (.*) นะครับ

แต่ถ้ามากกว่านี้ ก็ลองศึกษาเพิ่มดูเกี่ยวกับ Regex นะครับ

ปล.ผมก็ งู ๆ ปลา ๆ  :P

EThaiZone

อ้างถึงจาก: ohmohm ใน 23 กันยายน 2009, 18:55:58
ผมว่า . ใน (.*) น่าจะรวมถึงตัวอักษร / เองด้วย เวลามี / เยอะๆ mod_rewrite มันคงแปลงแบบงงงง
เปลี่ยน (.*) เป็น ([^/]*) หรือ ([^/]+) น่าจะหาย ยังไม่ได้ลองเองนะครับ ใช้ * ยอมข้อความว่างๆ ด้วย ( คือยอม // ) แต่ + ต้องยาวอย่างน้อย 1 ตัวอักษร
http://corz.org/serv/tricks/htaccess2.php

แนะนำตามวิธีนี้เลย

UnzO

อ้างถึงจาก: ohmohm ใน 23 กันยายน 2009, 18:55:58
ผมว่า . ใน (.*) น่าจะรวมถึงตัวอักษร / เองด้วย เวลามี / เยอะๆ mod_rewrite มันคงแปลงแบบงงงง
เปลี่ยน (.*) เป็น ([^/]*) หรือ ([^/]+) น่าจะหาย ยังไม่ได้ลองเองนะครับ ใช้ * ยอมข้อความว่างๆ ด้วย ( คือยอม // ) แต่ + ต้องยาวอย่างน้อย 1 ตัวอักษร
http://corz.org/serv/tricks/htaccess2.php

ขอบคุณครับ ป๋าาา  :)

ป๋านี่ช่วยผมตลอดเลยนะ อิอิ

อ้างถึงจาก: pugkung ใน 23 กันยายน 2009, 19:28:29
อ้างถึงจาก: ohmohm ใน 23 กันยายน 2009, 19:13:39
อ้างถึงจาก: VaKimZa ใน 23 กันยายน 2009, 19:02:05
รวบรวมประโยคที่น่าสนใจ มาไว้ต้นๆ ก่อนแต่ยังไม่ต้องเฉลยเนื้อหา  :'(
???  ต้องการตอบกระทู้นี้หรือเปล่า http://www.thaiseoboard.com/index.php/topic,80024.20.html

สงสัยเหมือนกัน

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

ตอบ จขกท.
ต้องถามก่อนว่า EEE000125F  EEE********F มันเป็นค่าคงที่แบบนี้หรือปล่าวแล้วเปลี่ยนแต่ตัวเลข
ถ้าแบบนี้ก็ ลอง (EEE[0-9]+F) แทน (.*) ดูนะคครับ
แต่ถ้าไม่ ก็ลอง ([A-Z0-9]+) แทน (.*) นะครับ

แต่ถ้ามากกว่านี้ ก็ลองศึกษาเพิ่มดูเกี่ยวกับ Regex นะครับ

ปล.ผมก็ งู ๆ ปลา ๆ  :P
อันที่จริงตรงนั้น มันไม่มีปัญหาครับ มันจะมีปัญหาตรง ข้อความที่หลังจากนั้นแหละครับ ส่วนวรรคที่สองนั้น มันมีจำนวนคงที่ และก็เปลี่ยนแปลงทั้งหมดเลยครับ
อ้างถึงจาก: EThaiZone ใน 23 กันยายน 2009, 19:33:48
อ้างถึงจาก: ohmohm ใน 23 กันยายน 2009, 18:55:58
ผมว่า . ใน (.*) น่าจะรวมถึงตัวอักษร / เองด้วย เวลามี / เยอะๆ mod_rewrite มันคงแปลงแบบงงงง
เปลี่ยน (.*) เป็น ([^/]*) หรือ ([^/]+) น่าจะหาย ยังไม่ได้ลองเองนะครับ ใช้ * ยอมข้อความว่างๆ ด้วย ( คือยอม // ) แต่ + ต้องยาวอย่างน้อย 1 ตัวอักษร
http://corz.org/serv/tricks/htaccess2.php

แนะนำตามวิธีนี้เลย
ครับผมลองดูแล้วครับ ใช้ได้ครับ ลองมานั่งวิเคราะห์ดู มันมีปัญหากับ %2F ซึ่งก็คือ / ครับ

มันเลยมองว่า เป็นวรรค อีกอันนึ่ง พูดๆ ไปแล้ว งง แต่ตอนนี้แก้ได้แล้วครับ แหะๆ เขียนให้มัน repleace จาก / ให้เป็น - ก็หายเหมือนกัน แต่ URL ที่ gg มันเก็บไปแล้ว มันจะ Error เลยต้องแก้ htaccess ใหม่ด้วยเหมือนกัน ขอบคุณมากครับ ทุกท่าน  :)