มีเรื่องอยากขอความช่วยเหลือเกี่ยวกับ mod_rewrite ครับ
รู้สึกเหมือนผมอธิบายมั่วๆไงก็ไม่รู้ เข้าใจเองยังมั่วเลยเนี่ย
Date :
2013-08-12 03:17:00
By :
อ่อนหัด
คือว่าพิมพ์ตัวอื่นๆได้หมดนะครับxx yy zz มันก็ขึ้น แต่คำว่า index มันไม่ขึ้นอะไรเลย
Date :
2013-08-12 03:32:15
By :
อ่อนหัด
ถ้าดูจาก RewriteCond แล้ว
RewriteCond %{REQUEST_FILENAME} !-d ไฟล์ที่เรียกต้องไม่เป็น directory ที่มีอยู่จริง
RewriteCond %{REQUEST_FILENAME} !-f ไฟล์ที่เรียกต้องไม่เป็น file ที่มีอยู่จริง
RewriteCond %{REQUEST_FILENAME} !-l ไฟล์ที่เรียกต้องไม่เป็น symbolic link ที่มีอยู่จริง
ถ้าไม่ผ่านเงื่อนไขทั้งหมดนี้ จะไม่ทำ RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
ความเป็นไปได้ที่ไม่ขึ้น url ที่ชื่อ index คือมีมีไฟล์หรือ directory ชื่อ index อยู่แล้วน่ะครับ
ดังนั้นลองตรวจดูครับว่าในโฟลเดอร์มีไฟล์หรือ directory ชื่อ index (ไม่มีนามสกุล) อยู่หรือเปล่า
ถ้าจะตรวจสอบว่าเป็นเพราะเงื่อนไขไหน ลองตัดเงื่อนไข RewriteCond ออกทีละอันแล้วลองรันดูครับ
Date :
2013-08-12 04:23:08
By :
cookiephp
อันนี้ไดเรคทอรี่ไฟล์ครับ
ผมทดลองตามที่คุณแมวของคุกกี้บอก แต่สงสัยความสามารถผมยังไม่ถึง
Date :
2013-08-12 11:59:59
By :
อ่อนหัด
ผมต้องเอาคำว่า index ไปเป็นตัวเรียกคลาสในโฟลเดอร์ controller มาทำงานอะครับ งงจุงเบย- -"
อันนี้คือพิมพ์ไรก็ออก ยกเว้นพิมพ์ชื่อไฟล์
Date :
2013-08-12 12:21:09
By :
อ่อนหัด
คือคำว่า index (ไม่ใช่ index.php) นี่ไม่ออกเหรอครับ
ลองแคปภาพมาหน่อยได้มั้ยครับ
Date :
2013-08-12 14:30:56
By :
cookiephp
อันที่จริง ไม่มีนะครับไฟล์ index แบบไม่มีนามสกุลอะ
Date :
2013-08-12 14:34:41
By :
อ่อนหัด
แคปภาพที่เรียกแล้วไม่ออกมาดูสิครับ
Date :
2013-08-12 14:38:25
By :
cookiephp
ครับ ผมทำตามในวีดีโอเลยนะครับ ผมมาจนถึงนาทีที่ 3:53 แล้วครับ
Date :
2013-08-12 14:51:29
By :
อ่อนหัด
มีความเป็นไปได้ว่าใน config ของ apache หรือ .htaccess ก่อนหน้านี้ได้ตั้งค่าแบบนี้เอาไว้
แบบนี้เรียกว่า Multiviews โดยจะหาไฟล์ทุกนามสกุลชื่อ index
DirectoryIndex index
ดังนั้นจึงทำให้ไม่ผ่านเงื่อนไขที่ว่า index ต้องไม่เป็นไฟล์
วิธีแก้คือ ใน index.php ให้เพิ่มโค้ดประมาณนี้ไว้แรกสุด
Code (PHP)
// ตรวจว่ามีตัวแปรชื่อ $_GET['url'] และไม่ใช่สตริงว่าง
if (!isset($_GET['url']) || $_GET['url'] === '') {
// หากไม่มี หรือมันเป็นสตริงว่าง ให้กำหนดค่ามันเป็น 'index'
$_GET['url'] = 'index';
}
Date :
2013-08-12 15:09:15
By :
cookiephp
ครับ เป็นอย่างนี้เอง เข้าใจปัญหาขึ้นมาหน่อยแล้ว
แต่ก็ยังสงสัยว่าในวีดีโอทำได้ยังไงกัน
วิธีของคุณแมวของคุกกี้ ใช้ได้ผลครับ
.....
ขอบคุณคุณแมวของคุกกี้มากนะครับ
ขอบคุณพื้นที่ไทยครีเอทครับ
Date :
2013-08-12 22:07:42
By :
อ่อนหัด
Load balance : Server 04