Mỗi khi bạn chỉnh sửa tệp này, Apache phải được khởi động lại / tải lại để các thay đổi có hiệu lực - sudo service apache2 restart
(hoặc) sudo service apache2 reload
, trong khi các thay đổi trong .htaccess
không yêu cầu Apache phải được khởi động lại. Như @dobey đã đề cập, .htaccess
tệp sẽ nằm trong DocumentRoot của trang web.
Để làm cho .htaccess
các tệp hoạt động như mong đợi, bạn cần chỉnh sửa tệp này:
/etc/apache2/sites-available/default
Hãy tìm một phần giống như thế này:
<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>
Bạn cần sửa đổi dòng chứa AllowOverride Không có gì để đọc AllowOverride All . Điều này nói với Apache rằng không sao khi cho phép .htaccess
các tệp vượt quá các chỉ thị trước đó. Bạn phải tải lại Apache trước khi thay đổi này có hiệu lực:
sudo /etc/init.d/apache2 reload
2009.12.08 lưu ý: trong bản tải xuống LAMP khoảng một tuần trước với Ubuntu 9.10 (Karmic), tệp cấu hình mặc định là /etc/apache2/sites-available/000-default
và nó được bao gồm
AllowOverride None
bên <Directory />
cạnh <Directory
/var/www/>
. Ngoài ra, các thư mục /www/var/
chứa .htaccess
tệp được mặc định không cho phép máy chủ Apache truy cập đọc, dẫn đến lỗi Apache
(13)Permission denied: /var/www/webapp/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable.
Để khắc phục, $ sudo nautilus
sau đó nhấp chuột phải vào thư mục với
.htacces
tệp s, chọn Thuộc tính, sau đó chọn Quyền và cung cấp cho nhóm người dùng mà bạn đăng nhập ít nhất là quyền đọc.
Xem http://httpd.apache.org/docs/2.0/mod/core.html#allowoverride để biết thêm thông tin về AllowOverride
.
/etc/apache2/httpd.conf
và đó là một ý tưởng tốt để tạo bản sao lưu của tệp gốc trước khi bạn chơi xung quanh nó. Đối với.htaccess
tệp, vui lòng tham khảo câu trả lời của @dobey