2015-07-09 19 views
11

Tôi có một trang trên trang web sử dụng random() cành cây, trong Firefox và Chrome nó bị ngăn không hoạt động vì nó được lưu vào bộ nhớ cache ngay khi tải trang.TẮT bộ nhớ cache cho tệp cụ thể với Apache

Có cách nào để tắt bộ nhớ đệm của một tệp cụ thể thông qua các cấu hình Apache hay không, hãy gọi nó là default.html hoặc thậm chí tốt hơn là tắt bộ nhớ đệm cho phần tập lệnh đó mà giữ các tệp hình ảnh đệm?

Tôi đã thử .htaccess nhưng điều này không hoạt động.

Cách duy nhất hiện nay cho phép các kịch bản để làm việc là để tắt bộ nhớ đệm trên toàn cầu thông qua tiêu đề PHP:

<?php 
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); 
header('Cache-Control: no-store, no-cache, must-revalidate'); 
header('Cache-Control: post-check=0, pre-check=0', FALSE); 
header('Pragma: no-cache'); 
?> 

Nhưng khi tôi chỉ cần phải tắt bộ nhớ đệm cho một trang cá nhân, tắt cho tất cả mọi thứ có vẻ điên rồ.

+0

'Tôi đã thử .htaccess nhưng điều này không hoạt động'. Đây chính xác là nơi để làm điều đó. Ý bạn là "không hoạt động"? Vui lòng chỉnh sửa câu hỏi và đăng những gì bạn đã cố gắng. – arco444

Trả lời

22

đặn nó ra, để nhắm mục tiêu một tập tin cụ thể (trong trường hợp này index.php), thêm mã này vào dưới cùng của .htaccess

<Files index.php> 
FileETag None 
Header unset ETag 
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate" 
Header set Pragma "no-cache" 
Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT" 
</Files> 

Ngoài ra để nhắm mục tiêu một lựa chọn tệp cụ thể, ví dụ. Tôi muốn bộ nhớ cache hình ảnh nhưng không có gì khác (file phù hợp với html, htm, js, css, php sẽ không được lưu trữ):

<filesMatch "\.(html|htm|js|css|php)$"> 
FileETag None 
Header unset ETag 
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate" 
Header set Pragma "no-cache" 
Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT" 
</filesMatch> 

Để kiểm tra .htaccess đã được đọc tôi bước vào một vài dòng rác ở phía dưới, phát hiện ra nó wasn không được đọc, đổi tên nó từ htaccess thành .htaccess và nó đã hoạt động.

Các vấn đề liên quan