ทุกครั้งที่คุณแก้ไขไฟล์นี้ Apache จะต้องเริ่มใหม่ / โหลดใหม่เพื่อให้การเปลี่ยนแปลงมีผล - sudo service apache2 restart
(หรือ) sudo service apache2 reload
ในขณะที่การเปลี่ยนแปลง.htaccess
ไม่ต้องการให้ Apache เริ่มการทำงานใหม่ ตามที่ @dobey พูดถึง.htaccess
ไฟล์นั้นจะอยู่ใน DocumentRoot ของเว็บไซต์
ในการทำให้.htaccess
ไฟล์ทำงานตามที่คาดไว้คุณต้องแก้ไขไฟล์นี้:
/etc/apache2/sites-available/default
ค้นหาส่วนที่มีลักษณะดังนี้:
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
# Uncomment this directive is you want to see apache2's
# default start page (in /apache2-default) when you go to /
#RedirectMatch ^/$ /apache2-default/
</Directory>
คุณจำเป็นต้องปรับเปลี่ยนบรรทัดที่มีAllowOverride ไม่มีการอ่านAllowOverride ทั้งหมด สิ่งนี้บอก Apache ว่าไม่เป็นไรที่จะอนุญาตให้ใช้.htaccess
ไฟล์ในการควบคุมคำสั่งก่อนหน้า คุณต้องโหลด Apache ใหม่ก่อนที่การเปลี่ยนแปลงนี้จะมีผล:
sudo /etc/init.d/apache2 reload
2009.12.08 หมายเหตุ:ในการดาวน์โหลด LAMP เกี่ยวกับสัปดาห์ที่ผ่านมากับ Ubuntu 9.10 (Karmic) ไฟล์การกำหนดค่าเริ่มต้นคือ/etc/apache2/sites-available/000-default
และมันรวมอยู่
AllowOverride None
ภายใต้<Directory />
นอกเหนือไป<Directory
/var/www/>
จาก นอกจากนี้ไดเร็กทอรีใน
ไฟล์/www/var/
ที่มีค่าเริ่มต้นที่.htaccess
จะไม่อนุญาตให้เข้าถึงเซิร์ฟเวอร์ Apache อ่านทำให้เกิดข้อผิดพลาด Apache
(13)Permission denied: /var/www/webapp/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable.
เพื่อแก้ไข$ sudo nautilus
จากนั้นคลิกขวาที่ไดเรกทอรีพร้อม
.htacces
ไฟล์ s เลือกคุณสมบัติจากนั้นเลือกสิทธิ์และให้กลุ่มผู้ใช้ที่คุณเข้าสู่ระบบเป็นสิทธิ์การอ่านอย่างน้อย
ดูhttp://httpd.apache.org/docs/2.0/mod/core.html#allowoverrideAllowOverride
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ
/etc/apache2/httpd.conf
และเป็นความคิดที่ดีที่จะทำสำเนาสำรองของไฟล์ต้นฉบับก่อนที่คุณจะเล่นกับมัน สำหรับ.htaccess
ไฟล์โปรดอ้างอิงถึงคำตอบของ @dobey