enable mod_rewrite in Apache

ทดสอบ 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:
,
,

Published by

bact

bact' is a name

4 thoughts on “enable mod_rewrite in Apache”

  1. รู้สึกว่า step แรก จะสั่งa2enmod ได้เลยนะครับ

  2. ขอบคุณค่า กำลังหาอยู่ว่าทำไมใช้.htaccessไม่ได้ นึกว่าต้องเสียเวลาหาเป็นอาทิตย์ซะแล้ว ปกติหาอะไรไม่ค่อยเจอ นี่เสริชปุ๊บเจอปั๊บเลย ดีใจจัง^-^

Leave a Reply