Làm cách nào để có được Apache2 để phân tích cú pháp (không có lỗi) Các chỉ thị tiêu đề trong .htaccess?


35

Tôi đang tải các trang với một lỗi máy chủ nội bộ 500, do tôi tin rằng một lệnh mà Apache chưa được cấu hình để cho phép.

Tôi đã đặt AllowOverride cho tất cả và tệp .htaccess, bao gồm:

<FilesMatch "\.(eot|ico|pdf|flv|jpg|jpeg|png|gif|svg|swf|ttf|woff)$">
Header set Cache-Control "max-age=31536000, public"
Header set Expires "Wed, 23 Apr 2014 17:00:01 UTC"
</FilesMatch>

/var/log/apache2/error.log có:

[Sat Jul 20 15:12:36 2013] [alert] [client 24.15.83.241] /home/jonathan/.htaccess: Invalid command 'Header', perhaps misspelled or defined by a module not included in the server configuration

Tôi cần làm gì để chỉ định để Apache2 sẽ xử lý đúng lệnh 'Tiêu đề'?

Câu trả lời:


65

Với apache2, chỉ cần chạy a2enmod headersvà sau đó sudo service apache2 restartnó sẽ tự động cài đặt mô-đun tiêu đề.


2
Câu trả lời này nên được chấp nhận
Himanshu Mishra

1
Quả thực câu trả lời này là tốt nhất, tuy nhiên tôi dám nói rằng một số bản phân phối GNU / Linux hiện đại (như Debian mới nhất) dựa trên systemdvà có một cú pháp khác nhau trong việc quản lý các dịch vụ. Khởi động lại Apache : sudo systemctl restart apache2.service. Tuy nhiên, cho đến nay, một hàm dự phòng tồn tại và do đó sudo servicelệnh cũ không hoạt động. Nhưng nó có thể ngừng hoạt động trong tương lai gần nhất.
dịch

a2enmodlà trong /usr/sbinhệ thống của tôi. Điều đó không có trong PATH không phải của người dùng của tôi, vì vậy a2enmod không thể khám phá được trừ khi bạn root. TL; DR: chạy sudo a2enmodthay vì chỉ a2enmod.
Michael Hoffmann

14

Bạn sẽ cần thêm một dòng như:

LoadModule headers_module modules/mod_headers.so

Để bạn httpd.confthêm hỗ trợ cho điều đó. Trong Ubuntu và tương tự, bạn có thể làm a2enmod headersvà nó sẽ tự động kích hoạt nó trong cấu hình của bạn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.