2008-04-08

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: , ,

4 คิดเห็น:

jittat said...

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

bact' said...

ง่า ขอบคุณค้าบ

jokk said...

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

bact' said...

jokk: ยินดีครับ :)



“ฉันไม่เห็นด้วยกับสิ่งที่คุณพูด แต่ฉันจะปกป้องสิทธิ์ในการพูดของคุณด้วยชีวิต”

“คิดเพื่อตัวคุณเอง
และปล่อยให้คนอื่นได้รับอภิสิทธิ์ในการทำเช่นนั้นด้วย”

“พ่อแม่ไม่ได้ให้โลกนี้เป็นมรดกแก่เรา แต่เรายืมมาจากลูกหลานของเรา”

“เอกราช ปลอดภัย เศรษฐกิจ เสมอภาค เสรีภาพ การศึกษา”


Join the Blue Ribbon Online Free Speech Campaign
สนับสนุนเสรีภาพในการแสดงออก

เราทำอะไรได้บ้าง?
Creative Commons License
bact' is a name
by Arthit Suriyawongkul
is licensed under a
Creative Commons
Attribution 3.0 License
.
สัญญาอนุญาตสร้างสรรค์ร่วมกัน
ครีเอทีฟคอมมอนส์