คุณเอกครับ รบกวนถามเกี่ยวกับ mod rewrite หน่อยครับ

เริ่มโดย pilotII, 07 มกราคม 2007, 03:23:33

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

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

pilotII

คือผมพยายามลองเขียนโปรแกรม โดยหัดลองทำ mod rewrite อย่างง่ายๆที่ dream host น่ะครับ ปรากฏว่าไม่ยอมแปลงเป็น static ให้น่ะครับ ผมเขียนอะไรผิดหรือเปล่าครับ ข้างล่างเป็นตัวอย่างของ .htaccess กับ โปรแกรมรับค่าแบบง่ายๆ ที่ผมลองทดสอบดูน่ะครับ

.htaccess

Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*)\.html$ /index.php?q=$1 [L]


index.php

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> test </TITLE>
</HEAD>
<BODY>
<FORM ACTION="index.php" >
<INPUT TYPE="text" NAME="q">
<INPUT TYPE="submit">
</FORM>
<?
if ($q<>""){
   echo $q ;
}
?>
</BODY>
</HTML>



พอผมลอง run โปรแกรมให้ส่งค่าดู  มันจะส่งเป็น qurery string เลยน่ะครับ เช่น www.mysite.com/index.php?q=abc แทนที่จะเป็น www.mysite.com/abc.html

แต่พอผมลอง พิมพ์ตรง www.mysite.com/abc.html มันก็ได้น่ะครับ ผมแปลกใจน่ะครับทำไมมันไม่แปลงเป็น static ให้ผมเลยน่ะครับ

รบกวนคุณเอกช่วยตอบปัญหาผมหน่อยน่ะครับ

chonyagusa

มีปัญหาเรื่อง mod rewrite เหมือนผมเลย

แอดมินกำลังจัดการให้มันทำงานอยู่เนี้ย เซงๆๆๆๆ
[direct=https://maxiox.com]maxiox[/direct]
[direct=https://maxmazo.com]maxmazo[/direct]

iamnewbies

dreamhost ผมใช้อยู่นะ

ต้นแบบที่ทำ สคริปกึ่งปั่นก็อยู่ที่ dreamhost นะ

ลอง เอา [L] ออก เพระาผมไม่ได้ใส่ไว้อะ


Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*)\.html$ /index.php?q=$1


หรือ

RewriteEngine on
RewriteRule (.*)\.html$ /index.php?q=$1
ุอิอิ  พลุบๆโพล่ๆ  เข้าๆออกๆ เสียวๆ

kingmaster

ถ้าเป็น www.mysite.com/index.php?q=abc(หมายถึงถ้าเข้าเว็บครั้งแรกอ่ะนะ) แบบนี้ปกติไม่มีครับ ถ้าเราพิมพ์เข้าไปที่ www.mysite.com/ มันจะเป็น www.mysite.com/index.php ยังไม่มี ค่าของ query string เลย

ดังนั้นตามโค๊ดที่คุณให้มาต้องคลิกผ่านปุ่มก่อน จึงจะมีการส่งค่า query string อ่ะนะ ซึ่งคุณต้องแก้ไขที่ลิ้งค์อ่ะ

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> test </TITLE>
</HEAD>
<BODY>
<FORM ACTION="q.html" >
<INPUT TYPE="text" NAME="q">
<INPUT TYPE="submit">
</FORM>
<?
if ($q<>""){
   echo $q ;
}
?>
</BODY>
</HTML>


แบบนี้อ่ะครับ เพราะถ้ายังเป็น
<FORM ACTION="index.php" >

แบบนี้มันก็จะไป index.php น่ะครับ... ซึ่งถ้าเราทำ mod_rewrite นี่เราก็ต้องเปลี่ยนลิ้งใหม่นะครับ ให้เป็นไปตาม mod_rewrite ด้วย