Làm thế nào để giải quyết Expires ExpiresActive không được phép ở đây Thông báo lỗi trong tập tin .htaccess?


11

Tôi đang cố gắng thêm các tiêu đề Hết hạn vào các phản hồi HTTP của trang web tôi đang làm việc. Cách duy nhất để tôi kiểm soát máy chủ Apache 1.3 là chỉnh sửa tệp .htaccess của tôi. Tôi đã thử thêm mã như sau để kích hoạt tiêu đề Hết hạn:

<IfModule mod_expires.c>
    ExpiresActive on
    ExpiresDefault "access plus 1 hour"
</IfModule>

Tuy nhiên, điều này dẫn đến lỗi máy chủ nội bộ với thông báo lỗi sau trong nhật ký:

ExpiresActive không được phép ở đây

Tôi có lẽ không thể sử dụng các phương pháp kiểm soát bộ đệm khác, vì mod_headers không được kích hoạt. Có cách nào tôi vẫn có thể kích hoạt tiêu đề Hết hạn bằng cách sử dụng mod_Exires thông qua một số lệnh trong tệp .htaccess không?

Cập nhật
Tôi nhớ lại việc đọc ở đâu đó rằng cài đặt Ghi đè trong httpd.conf có thể có liên quan đến nó. Có cách nào để xác nhận rằng đó thực sự là vấn đề? Nếu có, có một số cách giải quyết để kiểm soát các tiêu đề bộ đệm cho trang web của tôi không?

Câu trả lời:


12

Trên một lưu ý chung, cách đơn giản nhất để xử lý các vấn đề như thế này là tham khảo hướng dẫn.

http://httpd.apache.org/docs/1.3/mod/mod_Exires.html#Exiresactive

Syntax:      ExpiresActive On|Off
Context:     server config, virtual host, directory, .htaccess
Override:    Indexes
Status:      Extension
Module:      mod_expires

Hai lĩnh vực quan tâm đó là Bối cảnh và Ghi đè. Như chúng ta có thể thấy OK khi sử dụng ExpiresActive trong tệp .htaccess miễn là bạn cho phép IndexOverride Index

Cập nhật:

Để giải quyết nhu cầu của bạn cho các tiêu đề hết hạn. Hãy xem /programming/1036941/setup-Exires-headers-php-apache

Hi vọng điêu nay co ich:)


Cảm ơn câu trả lời của bạn, nhưng như câu hỏi của tôi đã nêu: Tôi không có quyền truy cập vào cấu hình của máy chủ ngoài thông qua tệp .htaccess trong thư mục gốc của tôi. Vì vậy, nếu AllowOverride không được đặt chính xác, tôi sẽ không gặp may.
Daan

Bạn nên nói chuyện với nhà cung cấp của bạn về điều đó. Không cho phép Index chỉ là imho ngu ngốc. Và, vâng, nếu họ không thể / không thay đổi thì bạn sẽ hiểu được mod_Exires.
Rune Nilssen

Chỉ để lặp lại quan điểm của Rune - nếu nhà cung cấp dịch vụ của bạn sẽ không thay đổi tham số AllowOverride của họ thì bạn không thể làm gì khác.
DaveG

3

Thêm "IndexOverride Index" vào conf của Apache cho thư mục nơi bạn có htaccess hoạt động cho tôi. Tìm thấy giải pháp tại đây http://speedforce.org/2009/01/were-back/


1
Cảm ơn câu trả lời của bạn, nhưng như câu hỏi của tôi đã nêu: Tôi không có quyền truy cập vào cấu hình của máy chủ ngoài thông qua tệp .htaccess trong thư mục gốc của tôi. Vì vậy, nếu AllowOverride không được đặt chính xác, tôi sẽ không gặp may.
Daan

1

trên RHEL trong /etc/httpd/conf/httpd.conf

thay đổi AllowOverride Không

để AllowOverride Tùy chọn FileInfo


2
Cảm ơn câu trả lời của bạn, nhưng một lần nữa, như câu hỏi của tôi đã nêu: Tôi không có quyền truy cập vào cấu hình của máy chủ ngoài thông qua tệp .htaccess trong thư mục gốc của tôi. Vì vậy, nếu AllowOverride không được đặt chính xác, tôi sẽ không gặp may.
Daan

0

Trong trường hợp của tôi, mod_Exires không có sẵn, nhưng headftimemodule là, điều này hoạt động độc đáo (trên Apache 2.0):

# match all these file types, regardless of upper/lowercase
<FilesMatch "\.(?i:jpg|png|gif|js|css)$">
    # 60 seconds * 60 minutes * 24 hours * 7 days
    Header set Cache-Control "max-age=604800, public, must-revalidate"

    # alternative: never expire headers (do look up the caveats)
    # Header set Expires "Thu, 01 Jan 2030 08:08:00 GMT"
    # Header set Cache-Control "public, no-transform"

    # further (debatable) optimizations
    # FileETag None
    # Header unset ETag
    # Header unset Last-Modified
</FilesMatch>

0

Tôi đã gặp vấn đề tương tự trên Apache 2.4 / CentOS 7. Cú pháp cho Tệp cấu hình bây giờ là: "Tùy chọn AllowOverride = Chỉ mục"

<Directory /var/www/html/>
  Options Indexes FollowSymlinks
  AllowOverride Options=Indexes
</Directory>
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.