ทดสอบ CakePHP ในเครื่อง ต้องหาทางเปิด mod_rewrite ไปเจอที่ Ubuntu Forums อีกตามเคย ขอแปลมาไว้ที่นี่:
เปิดใช้ mod_rewrite ใน Apache2 (บน Ubuntu)
เปิดใช้โมดูล mod_rewrite (เอาไว้ทำ url อ่านง่าย ๆ) ใน Apache ใน 3+1 ขั้นตอน:
ขั้นหนึ่ง: ระบุให้โหลด rewrite โดยการทำซิมบอลิกลิงก์ไฟล์ rewrite.load ใส่ไว้ใน /etc/apache2/mods-enabled/
sudo ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/
เพิ่มเติม 2008.04.08: อ.มะนาวบอกว่า ใช้ a2enmod ก็ได้ ง่ายกว่ากันเยอะ .. จริง ๆ ด้วย! ดังนั้น ทำแบบนี้ก็ได้
sudo a2enmod rewrite
(a2enmod ว่าตามตัวคือ apache2 enable module; ถ้าอยากเอาตัวไหนออก ก็ใช้ a2dismod – apache2 disable module)
ขั้นสอง: แก้ไฟล์คอนฟิกของ apache
sudo vi /etc/apache2/sites-enabled/000-default
เปลี่ยนค่าของ AllowOverride ไปเป็น all สำหรับ document root directory ที่ต้องการ (default จะเป็น /var/www/)
ตัวอย่างเช่น:
<Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride all Order allow,deny allow from all </Directory>
ขั้นสาม: รีสตาร์ท apache
sudo /etc/init.d/apache2 restart
อันนี้ก็จะเสร็จทางฝั่ง apache ละ ต่อไปก็เป็นทางฝั่งเว็บแอพพลิเคชัน/สคริปต์
ขั้นสุดท้าย: แก้/สร้างไฟล์ .htaccess ในไดเรกทอรีที่ต้องการใช้ rewrite โดยระบุค่า RewriteEngine เป็น On
RewriteEngine On
เท่านี้ก็จะใช้ mod_rewrite ได้แล้ว
ส่วนวิธีเขียนกฎ rewrite นั้น ลองศึกษาได้จาก URL Rewriting Guide, cheat sheet
[credits to jalanbuntu of Ubuntu Forums]
technorati tags:
mod_rewrite,
rewrite,
Apache
4 responses to “enable mod_rewrite in Apache”
รู้สึกว่า step แรก จะสั่งa2enmod ได้เลยนะครับ
ง่า ขอบคุณค้าบ
ขอบคุณค่า กำลังหาอยู่ว่าทำไมใช้.htaccessไม่ได้ นึกว่าต้องเสียเวลาหาเป็นอาทิตย์ซะแล้ว ปกติหาอะไรไม่ค่อยเจอ นี่เสริชปุ๊บเจอปั๊บเลย ดีใจจัง^-^
jokk: ยินดีครับ 🙂