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

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

ThaiSEOBoard.comพัฒนาเว็บไซต์Programmingเทคนิคการทำ mod_rewrite แบบนี้ ใครทำเป็นบ้าง ??
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: เทคนิคการทำ mod_rewrite แบบนี้ ใครทำเป็นบ้าง ??  (อ่าน 572 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
pch081
ก๊วนเสียว
*

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

กระทู้: 357



ดูรายละเอียด เว็บไซต์
« เมื่อ: 13 มิถุนายน 2018, 10:36:04 »

ประเด็นคือ ผมต้องการทำเว็บไซต์ให้สามารถเปลี่ยน URL เป็นแบบนี้

www.aaa.cxm/contents/a/199966/ or contents/b/199966/ or contents/c/199966/ or ........

ซึ่งจากที่ศึกษามาหลายท่านบอกให้ลองทำ mod_rewrite ใน .htaccess แต่ผมลองทำแล้วยังทำไม่ได้

เลยอยากให้ช่วยเขียนคำสั่งนี้ให้ผมหน่อย หรือถ้ามีปลั๊กอินที่สามารถทำได้แนะนำหน่อยนะครับ

เว็บผมเป็น Wordpress

 wanwan031 wanwan031
« แก้ไขครั้งสุดท้าย: 13 มิถุนายน 2018, 13:12:56 โดย pch081 » บันทึกการเข้า

อยากเล่นสนุกต้องเข้าเกมส์สยาม แหล่งรวมฮิตเกมส์จับคู่ เกมส์รถแข่ง เกมส์ฟุตบอล และอีกมากมาย
pch081
ก๊วนเสียว
*

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

กระทู้: 357



ดูรายละเอียด เว็บไซต์
« ตอบ #1 เมื่อ: 13 มิถุนายน 2018, 11:19:54 »

ตอนนี้ผมเขียนไว้ประมาณ แต่มันก็ยังไม่ได้ ผิดถูกยังไงชี้แนะด้วยครับ

โค๊ด:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteRule ^archives/(.*)/([0-9]+)/$ archives.php?p=$1
</IfModule>
บันทึกการเข้า

อยากเล่นสนุกต้องเข้าเกมส์สยาม แหล่งรวมฮิตเกมส์จับคู่ เกมส์รถแข่ง เกมส์ฟุตบอล และอีกมากมาย
pch081
ก๊วนเสียว
*

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

กระทู้: 357



ดูรายละเอียด เว็บไซต์
« ตอบ #2 เมื่อ: 14 มิถุนายน 2018, 11:11:50 »

ขุดๆ ยังไม่ได้คำตอบ

 wanwan031 wanwan031
บันทึกการเข้า

อยากเล่นสนุกต้องเข้าเกมส์สยาม แหล่งรวมฮิตเกมส์จับคู่ เกมส์รถแข่ง เกมส์ฟุตบอล และอีกมากมาย
shishior
Newbie
*

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

กระทู้: 2



ดูรายละเอียด
« ตอบ #3 เมื่อ: 14 มิถุนายน 2018, 14:17:03 »



ลองเปลี่ยนใน settings>>Permalinks แล้วรึยังคะ
บันทึกการเข้า
GigBoT
Verified Seller
เจ้าพ่อบอร์ดเสียว
*

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

กระทู้: 3,212



ดูรายละเอียด เว็บไซต์
« ตอบ #4 เมื่อ: 14 มิถุนายน 2018, 14:20:45 »



ลองเปลี่ยนใน settings>>Permalinks แล้วรึยังคะ

ตามนี้เลยครับไม่ยากมากครับ
บันทึกการเข้า

Hosting - เปิดตัว SSD Hosting คุณภาพดี เริ่มต้น 800.- บาทต่อปี โดยแชมป์ SEO 2016
เสริมหน้าอก - คลินิกเสริมหน้าอก PSC อันดับ 1 ของไทย
ฉากกั้นห้อง - ฉากกั้นห้องเกรด A ราคาถูกคุณภาพสูง
รีสอร์ท - รีสอร์ทและที่พักนครนายก ติดเขื่อนขุนด่านปราการชล
เบอร์มงคล - เบอร์สวย เบอร์มงคล วิเคราะห์เบอร์มือถือ มีมากกว่า 3,000 เบอร์ให้คุณเลือก ในรา
infamous
ก๊วนเสียว
*

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

กระทู้: 301



ดูรายละเอียด
« ตอบ #5 เมื่อ: 14 มิถุนายน 2018, 15:30:40 »

ตอนนี้ผมเขียนไว้ประมาณ แต่มันก็ยังไม่ได้ ผิดถูกยังไงชี้แนะด้วยครับ

โค๊ด:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteRule ^archives/(.*)/([0-9]+)/$ archives.php?p=$1
</IfModule>

ข้อสังเกตุสำหรับการทำ mod_rewrite นะครับ

1. mod_rewrite มีลำดับชั้นของ cond & rule นั่นหมายถึงว่า ชุด cond & rule ไหนอยู่สูงกว่า จะเช็คตัวนั้นก่อน #ท่านเห็นอะไรหรือยัง
2. ถ้าเราต้องการทำ custom rule ก่อน default rule ให้เราวาง cond & rule ที่ต้องการทำไว้สูงกว่า default rule โดยตัว default ของ wp มันจะเริ่มจาก

// .... custom cond & rule ของเรา

RewriteRule ^index\.php$ - [L]

3. ตัวอย่างผมทดสอบใน wp 4.9 จะเป็นดังนี้

โค๊ด:
RewriteCond {REQUEST_FILENAME} !-f
RewriteCond {REQUEST_FILENAME} !-d
RewriteRule ^archives/([0-9]+)(/.*|$) archives.php?id=$1&slug=$2 [QSA,L]

#default wp cond & rule
RewriteRule ^index\.php$ - [L]


4. จากด้านบนจะเห็นว่า ถ้าใน url มันมีแมชท์กับ custom rule เราเมื่อไหร่ ให้มันไปที่ archives.php แล้วส่ง parameter ไปด้วย #ตัวอย่างผมส่งไป 2 ตัว id,slug
โค๊ด:
url: yoursite.com/archives/12/fucking-cms-system-you-should-consider

matches:
id: 12, slug: fucking-cms-system-you-should-consider

# รองรับ
yoursite.com/archives/id
yoursite.com/archives/id/slug


5. ถ้าลืมสร้างไฟล์ archives.php ไว้ใน root เทียบเท่ากับไฟล์ index.php นะครับ

6. ในไฟล์ archives.php
โค๊ด:
<?php var_dump($_GET);

7. ถ้ายังไม่ได้อีก ลองแนบโค๊ดแบบเต็มมาดูครับ เด๋วผมช่วยดูให้อีกที

ปล. ต้องขออภัยที่ยาวไปหน่อย คือผมต้องการให้เข้าใจ มากกว่าแค่เอาโค๊ดไปใช้งานครับ
บันทึกการเข้า
หน้า: [1]   ขึ้นบน
พิมพ์