2009-06-24 35 views

Trả lời

100

Có hai cách để làm điều này. Đầu tiên là chỉ định tiêu đề trong mã php của bạn. Điều này là tuyệt vời nếu bạn muốn điều chỉnh theo chương trình thời gian hết hạn. Ví dụ: một wiki có thể đặt thời gian hết hạn lâu hơn cho một trang không được chỉnh sửa thường xuyên.

header('Expires: '.gmdate('D, d M Y H:i:s \G\M\T', time() + (60 * 60))); // 1 hour 

lựa chọn thứ hai của bạn là tạo ra một tập tin .htaccess hoặc sửa đổi cấu hình httpd của bạn. Trong môi trường lưu trữ được chia sẻ, việc sửa đổi tệp .htaccess của bạn khá phổ biến. Để thực hiện việc này, bạn cần biết máy chủ của mình có hỗ trợ mod_expires, mod_headers hoặc cả hai. Cách dễ nhất đơn giản là dùng thử và lỗi, nhưng một số máy chủ Apache được cấu hình để cho phép bạn xem thông tin này qua trang/server-info. Nếu máy chủ của bạn có cả mod_expires và mod_headers, và bạn muốn thiết lập khi hết thời hạn trên các tài nguyên tĩnh, hãy thử đặt này trong tập tin .htaccess của bạn:

# Turn on Expires and set default to 0 
ExpiresActive On 
ExpiresDefault A0 

# Set up caching on media files for 1 year (forever?) 
<FilesMatch "\.(flv|ico|pdf|avi|mov|ppt|doc|mp3|wmv|wav)$"> 
ExpiresDefault A29030400 
Header append Cache-Control "public" 
</FilesMatch> 

Đối với các kết hợp khác và nhiều hơn nữa ví dụ xem: http://www.askapache.com/htaccess/speed-up-your-site-with-caching-and-cache-control.html

+0

Vì vậy, tôi nghĩ ngay rằng .flv, .ico etc sẽ tự động có các tiêu đề chính xác được thêm vào chúng? rất thú vị – Tom

+3

Tiêu đề nối thêm Cache-Control "public" => Dòng này cho tôi một lỗi máy chủ nội bộ 500. – noobcode

+0

@noobcode Tôi có cùng một vấn đề. Làm thế nào bạn giải quyết điều này xin vui lòng? – Houman

1

Bạn đã thử một cái gì đó như thế nào?

<?php 
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); 
?> 
+2

gì điều này có nghĩa là gì? –

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