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

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

ThaiSEOBoard.comความรู้ทั่วไปSearch Engine Optimizationท่านใดแปลง url rewrite เว็บ dynamic ได้บ้างครับ
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: ท่านใดแปลง url rewrite เว็บ dynamic ได้บ้างครับ  (อ่าน 1966 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
xfiles
หัวหน้าแก๊งเสียว
*

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

กระทู้: 1,531



ดูรายละเอียด เว็บไซต์
« เมื่อ: 06 กุมภาพันธ์ 2012, 11:47:54 »

คือผมลองทำตามมาหลายเว็บแล้วยังไงมันก็ไม่ยอมเปลี่ยน   Tongue
 
ตัวอย่าง URL Dynamic เว็บผมครับ http://domain.com/haha.php?ID=9

อยากให้มันแปลงเป็นแบบ http://domain.com/ ไตเติ้ลเว็บ.html อ่ะครับ เป็น eng หมดเลยครับ

ช่วยชี้แนะหน่อยครับ

เปิด mod rewrite แล้วนะครับ   
บันทึกการเข้า

jaideeplazadotcom
หัวหน้าแก๊งเสียว
*

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

กระทู้: 1,872



ดูรายละเอียด เว็บไซต์
« ตอบ #1 เมื่อ: 06 กุมภาพันธ์ 2012, 11:49:51 »

เขียน .htass ใส่สิครับ ลองหาตัวอย่างดู
บันทึกการเข้า
xfiles
หัวหน้าแก๊งเสียว
*

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

กระทู้: 1,531



ดูรายละเอียด เว็บไซต์
« ตอบ #2 เมื่อ: 06 กุมภาพันธ์ 2012, 12:23:06 »

เขียน .htass ใส่สิครับ ลองหาตัวอย่างดู


อ่อครับ คือทำตามมาหลายเว็บแล้วอ่ะครับ นิ่งสนิท  wanwan031
บันทึกการเข้า

seowizard
หัวหน้าแก๊งเสียว
*

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

กระทู้: 1,119



ดูรายละเอียด เว็บไซต์
« ตอบ #3 เมื่อ: 06 กุมภาพันธ์ 2012, 12:40:43 »

โค๊ด:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?url=$1 [L]

อันนี้ครับของ wordpress ครับ

เช่น ส่ง url

โค๊ด:
<a href=title_friendly.html>link</a>

mod rewrite จะ convert เป็น

โค๊ด:
index.php?url=title_friendly

หน้า index.php ก็ไป $_GET รับค่า url แล้ว where title_url = title_db ดึง post มาแสดง จบครับ

บันทึกการเข้า
xfiles
หัวหน้าแก๊งเสียว
*

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

กระทู้: 1,531



ดูรายละเอียด เว็บไซต์
« ตอบ #4 เมื่อ: 06 กุมภาพันธ์ 2012, 13:46:05 »

โค๊ด:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?url=$1 [L]

อันนี้ครับของ wordpress ครับ

เช่น ส่ง url

โค๊ด:
<a href=title_friendly.html>link</a>



mod rewrite จะ convert เป็น

โค๊ด:
index.php?url=title_friendly

หน้า index.php ก็ไป $_GET รับค่า url แล้ว where title_url = title_db ดึง post มาแสดง จบครับ




ขอบคุณมากๆเลยท่านถึงบางอ่อเลยผม แต่ขอถามเพิ่มนิดนึงผท get ค่ามาแล้วมันติด .html มาด้วยแก้ไงอ่ะครับ  แล้วช่องว่างใน url ให้แทนด้่วย -  ยังไงหรอครับ  wanwan012
« แก้ไขครั้งสุดท้าย: 06 กุมภาพันธ์ 2012, 13:46:46 โดย xfiles » บันทึกการเข้า

xfiles
หัวหน้าแก๊งเสียว
*

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

กระทู้: 1,531



ดูรายละเอียด เว็บไซต์
« ตอบ #5 เมื่อ: 06 กุมภาพันธ์ 2012, 14:14:15 »

ดึงมาแล้ว ถ้ามี / อยู่ในชื่อลิ้ง จะทำให้หน้านั้น css เพี้ยนไปแก้ยังไงหรอครับ  wanwan031
บันทึกการเข้า

taauza
ก๊วนเสียว
*

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

กระทู้: 234



ดูรายละเอียด เว็บไซต์
« ตอบ #6 เมื่อ: 06 กุมภาพันธ์ 2012, 15:35:45 »

ดึงมาแล้ว ถ้ามี / อยู่ในชื่อลิ้ง จะทำให้หน้านั้น css เพี้ยนไปแก้ยังไงหรอครับ  wanwan031


กำหนด URL เว็บเว็บแล้วให้ใส่หน้า css หรือ ถาพ เช่น
<?php
$url = "http://www.xxx.com/ " ;
?>
<link rel="stylesheet" type="text/css" href="<?=$url;?>/css/template_css.css" />
« แก้ไขครั้งสุดท้าย: 06 กุมภาพันธ์ 2012, 15:40:59 โดย taauza » บันทึกการเข้า

seowizard
หัวหน้าแก๊งเสียว
*

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

กระทู้: 1,119



ดูรายละเอียด เว็บไซต์
« ตอบ #7 เมื่อ: 06 กุมภาพันธ์ 2012, 16:30:49 »

ดึงมาแล้ว ถ้ามี / อยู่ในชื่อลิ้ง จะทำให้หน้านั้น css เพี้ยนไปแก้ยังไงหรอครับ  wanwan031


กำหนด URL เว็บเว็บแล้วให้ใส่หน้า css หรือ ถาพ เช่น
<?php
$url = "http://www.xxx.com/ " ;
?>
<link rel="stylesheet" type="text/css" href="<?=$url;?>/css/template_css.css" />


ตามท่านนี้ครับ คือต้องระบุเป็น Full Path ไม่งั้นมันจะไปมองว่าอยู่ภายใต้ index.php เช่น index.php/css/template.css  มันก็เพี้ยน

อ้างถึง
แต่ขอถามเพิ่มนิดนึงผท get ค่ามาแล้วมันติด .html มาด้วยแก้ไงอ่ะครับ  แล้วช่องว่างใน url ให้แทนด้่วย -  ยังไงหรอครั


อยู่ที่เราว่าเก็บ title ใน db ยังไง ถ้ามันเป็นค่าว่าง แทน - ก็ต้องทำการ replace string ให้เป็นรูปแบบเดียวกับที่เก็บในฐานข้อมูลครับ ส่วน .html ก็ไม่ต้องไปสนใจครับ
จัดเต็มไปให้เลยแล้วกัน ตย.
อ้างถึง
$strarr = explode(".",$url);
$strurl = $strarr[0];// ตัดเอาเฉพาะส่วนที่ต้องการ เอา .html ออก
$url_title = preg_replace("_", " ",$strurl); // แทนค่า _ ด้วยค่าว่าง เพื่อเอาไป select ข้อมูลจากฐานข้อมูล

$strSQL = "SELECT * FROM test WHERE title = '$url_title'"; // field title ที่อยู่ในฐานข้อมูลควรเก็บเป็น unique+not null ไม่ว่างและไม่ duplicate


code ไม่ได้ทดสอบ เขียนสดเอาไปแกะเองครับ จริง ๆมีวิธีเยอะแยะ แต่ผมชอบวิธี้มันง่ายและ simple สุด ๆหละ


บันทึกการเข้า
xfiles
หัวหน้าแก๊งเสียว
*

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

กระทู้: 1,531



ดูรายละเอียด เว็บไซต์
« ตอบ #8 เมื่อ: 06 กุมภาพันธ์ 2012, 16:30:59 »

ดึงมาแล้ว ถ้ามี / อยู่ในชื่อลิ้ง จะทำให้หน้านั้น css เพี้ยนไปแก้ยังไงหรอครับ  wanwan031


กำหนด URL เว็บเว็บแล้วให้ใส่หน้า css หรือ ถาพ เช่น
<?php
$url = "http://www.xxx.com/ " ;
?>
<link rel="stylesheet" type="text/css" href="<?=$url;?>/css/template_css.css" />


เอาแบบนี้เลยรึท่าน ^ ^ จัดไปอิอิ ขอบคุณมากครับทุกๆ + ให้ทุกๆท่านแล้วเด้อ

ขอถามต่อหน่อย พอดีจะ rewrite php อีกไฟล์นึง แต่มันดันไปชนกับไฟล์ php อันแรก ที่ใส่ไปแล้ว แบบนี้ทำไงหรอท่าน
บันทึกการเข้า

xfiles
หัวหน้าแก๊งเสียว
*

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

กระทู้: 1,531



ดูรายละเอียด เว็บไซต์
« ตอบ #9 เมื่อ: 06 กุมภาพันธ์ 2012, 16:38:06 »

ดึงมาแล้ว ถ้ามี / อยู่ในชื่อลิ้ง จะทำให้หน้านั้น css เพี้ยนไปแก้ยังไงหรอครับ  wanwan031


กำหนด URL เว็บเว็บแล้วให้ใส่หน้า css หรือ ถาพ เช่น
<?php
$url = "http://www.xxx.com/ " ;
?>
<link rel="stylesheet" type="text/css" href="<?=$url;?>/css/template_css.css" />


ตามท่านนี้ครับ คือต้องระบุเป็น Full Path ไม่งั้นมันจะไปมองว่าอยู่ภายใต้ index.php เช่น index.php/css/template.css  มันก็เพี้ยน

อ้างถึง
แต่ขอถามเพิ่มนิดนึงผท get ค่ามาแล้วมันติด .html มาด้วยแก้ไงอ่ะครับ  แล้วช่องว่างใน url ให้แทนด้่วย -  ยังไงหรอครั


อยู่ที่เราว่าเก็บ title ใน db ยังไง ถ้ามันเป็นค่าว่าง แทน - ก็ต้องทำการ replace string ให้เป็นรูปแบบเดียวกับที่เก็บในฐานข้อมูลครับ ส่วน .html ก็ไม่ต้องไปสนใจครับ
จัดเต็มไปให้เลยแล้วกัน ตย.
อ้างถึง
$strarr = explode(".",$url);
$strurl = $strarr[0];// ตัดเอาเฉพาะส่วนที่ต้องการ เอา .html ออก
$url_title = preg_replace("_", " ",$strurl); // แทนค่า _ ด้วยค่าว่าง เพื่อเอาไป select ข้อมูลจากฐานข้อมูล

$strSQL = "SELECT * FROM test WHERE title = '$url_title'"; // field title ที่อยู่ในฐานข้อมูลควรเก็บเป็น unique+not null ไม่ว่างและไม่ duplicate


code ไม่ได้ทดสอบ เขียนสดเอาไปแกะเองครับ จริง ๆมีวิธีเยอะแยะ แต่ผมชอบวิธี้มันง่ายและ simple สุด ๆหละ





อ่อ + ไปแล้วเด้อท่าน ขอบคุณมากครับ

ฝากข้างล่างด้วยเด้อครับ

อ้างถึง
ขอถามต่อหน่อย พอดีจะ rewrite php อีกไฟล์นึง แต่มันดันไปชนกับไฟล์ php อันแรก ที่ใส่ไปแล้ว แบบนี้ทำไงหรอท่าน
บันทึกการเข้า

taauza
ก๊วนเสียว
*

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

กระทู้: 234



ดูรายละเอียด เว็บไซต์
« ตอบ #10 เมื่อ: 06 กุมภาพันธ์ 2012, 17:09:09 »

งงกับคำถามครับ ยกตัวอย่างที่บอกว่าชนให้หน่อย
บันทึกการเข้า

xfiles
หัวหน้าแก๊งเสียว
*

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

กระทู้: 1,531



ดูรายละเอียด เว็บไซต์
« ตอบ #11 เมื่อ: 06 กุมภาพันธ์ 2012, 17:29:43 »

งงกับคำถามครับ ยกตัวอย่างที่บอกว่าชนให้หน่อย

อ่อครับ แบบว่าในไฟล์ .htaccess

RewriteRule ^(.+)$ index.php?url1=$1 [L]

เพิ่ม RewriteRule ^(.+)$ url2.php?url2=$1 [L] เข้าไป

พอกดลิ้ง แล้วมันไปเข้า  index.php?url1=$1 อ่ะครับ

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

taauza
ก๊วนเสียว
*

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

กระทู้: 234



ดูรายละเอียด เว็บไซต์
« ตอบ #12 เมื่อ: 06 กุมภาพันธ์ 2012, 17:52:41 »

งงกับคำถามครับ ยกตัวอย่างที่บอกว่าชนให้หน่อย

อ่อครับ แบบว่าในไฟล์ .htaccess

RewriteRule ^(.+)$ index.php?url1=$1 [L]

เพิ่ม RewriteRule ^(.+)$ url2.php?url2=$1 [L] เข้าไป

พอกดลิ้ง แล้วมันไปเข้า  index.php?url1=$1 อ่ะครับ

T T

" .htaccess "
RewriteRule ^([ก-๙a-zA-Z0-9-/]+)$ index.php?url1=$1

" รับค่าเช็ค "
$url=mysql_real_escape_string($_GET['url1']);
$sql=mysql_query("select * from ฐานข้อมูล where url='$url'");
บันทึกการเข้า

taauza
ก๊วนเสียว
*

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

กระทู้: 234



ดูรายละเอียด เว็บไซต์
« ตอบ #13 เมื่อ: 06 กุมภาพันธ์ 2012, 18:01:06 »

งงกับคำถามครับ ยกตัวอย่างที่บอกว่าชนให้หน่อย

อ่อครับ แบบว่าในไฟล์ .htaccess

RewriteRule ^(.+)$ index.php?url1=$1 [L]

เพิ่ม RewriteRule ^(.+)$ url2.php?url2=$1 [L] เข้าไป

พอกดลิ้ง แล้วมันไปเข้า  index.php?url1=$1 อ่ะครับ

T T

" .htaccess "
RewriteRule ^([ก-๙a-zA-Z0-9-/]+)$ index.php?url1=$1

" รับค่าเช็ค "
$url=mysql_real_escape_string($_GET['url1']);
$sql=mysql_query("select * from ฐานข้อมูล where url='$url'");

โทดทีครับลืมดูว่า index.php?url1=$1 กับ url2.php?url2=$1  คนส่งไปคนละตัวกัน แบบนี้ไม่แน่ใจครับว่าทำได้ป่าว รอผู้รู้ต่อไป
บันทึกการเข้า

seowizard
หัวหน้าแก๊งเสียว
*

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

กระทู้: 1,119



ดูรายละเอียด เว็บไซต์
« ตอบ #14 เมื่อ: 06 กุมภาพันธ์ 2012, 18:37:54 »

งงกับคำถามครับ ยกตัวอย่างที่บอกว่าชนให้หน่อย


อ่อครับ แบบว่าในไฟล์ .htaccess

RewriteRule ^(.+)$ index.php?url1=$1 [L]

เพิ่ม RewriteRule ^(.+)$ url2.php?url2=$1 [L] เข้าไป

พอกดลิ้ง แล้วมันไปเข้า  index.php?url1=$1 อ่ะครับ

T T


เขียนรับส่ง pattern ให้ตรง ก็ได้เหมือนกันครับ index.php นี่คือ default ของ webserver ฉะนั้นปกติเราจึงไม่จำเป็นต้องใช้ Full Path
ในกรณีนี้คุณอาจจะมี url2.php ฉะนั้นการดักด้วย reg ^(.+)$ อาจจะไม่ได้ผลเพราะมันจะส่งเข้า index.php ฉะนั้นต้องมีการระบุใหม่ เช่น

โค๊ด:
RewriteRule ^url2/^(.+)$ url2.php?url2=$1 [L]

เวลาส่งก็ต้องระบุเป็น FULL Path เช่น <a href='http://yoursite.com/url2/url_freindly.html' >url2</a>  เป็นต้น

บันทึกการเข้า
xfiles
หัวหน้าแก๊งเสียว
*

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

กระทู้: 1,531



ดูรายละเอียด เว็บไซต์
« ตอบ #15 เมื่อ: 06 กุมภาพันธ์ 2012, 20:11:52 »

ขอบคุณท่าน taauza และ seowizard มากๆ ที่ให้ความรู้ผม  wanwan017
บันทึกการเข้า

หน้า: [1]   ขึ้นบน
พิมพ์