实施这一方法将节省你难以置信数额的带宽,极大地加快你的网站为你的网站访客。基本上,对于图片,CSS , JavaScript以及其他文件可以通过优化更快的下载,告诉你的网站访问者快取记忆体,为他们在某一段时间内。默认的行为是每一次请求检查文件的last-modified 和/或者 Etag headers。
所以一个用户去/home/index.html,及浏览器缓存所有图象和文件。然后用户离开网站稍后回来,与浏览器发送If-Modified-Since 有条件的GET 请求为每一个缓存的项目时,基本上看,如果文件已被改变和他们必须更新他们的缓存。
当你执行在这篇文章中所述的缓存方法,你可以指定某文件或扩展名被缓存为某一特定数额的时间。这些文件然后缓存在你的网站访客和他们不发送If-Modified-Since头直到设置的缓存时间已经到了。
#================================================= ============================#
# TIME CHEAT SHEET
#================================================= ============================#
# 300 5 M # 604800 1 W
# 2700 45 M # 1814400 3 W
# 3600 1 H # 2419200 1 M
# 54000 15 H # 14515200 6 M
# 86400 1 D # 26611200 11 M
# 518400 6 D # 29030400 1 Y (never expire)
第一个解决办法是Apache模块mod_expires 1.3 2.0 2.2
ExpiresActive On
ExpiresDefault A300
ExpiresByType image/x-icon A2592000
ExpiresByType application/x-javascript A2592000
ExpiresByType text/css A2592000
ExpiresByType image/gif A604800
ExpiresByType image/png A604800
ExpiresByType image/jpeg A604800
ExpiresByType text/plain A604800
ExpiresByType application/x-shockwave-flash A604800
ExpiresByType video/x-flv A604800
ExpiresByType application/pdf A604800
ExpiresByType text/html A300
第二个解决办法是mod_headers 1.3 2.0 2.2
# YEAR
<FilesMatch “\.(flv|gif|ico)$”>
Header set Cache-Control “max-age=2592000”
</FilesMatch>
# WEEK
<FilesMatch “\.(pdf|swf|js|css)$”>
Header set Cache-Control “max-age=604800”
</FilesMatch>
# NEVER CACHE
<FilesMatch “\.(html|cgi|php|htm)$”>
Header set Expires “Thu, 01 Dec 2003 16:00:00 GMT”
Header set Cache-Control “no-store, no-cache, must-revalidate”
Header set Pragma “no-cache”
</FilesMatch>
注:用filesmatch和files在htaccess文件
这里是Headers当下载一个JPEG图像的时候,
这个缓存方案实施后和没有缓存时的效果。
JPEG 没有缓存的时
Last-Modified: Wed, 22 Feb 2006 12:16:56 GMT
ETag: “b57d54-45e7”
Accept-Ranges: bytes
Content-Length: 17895
Connection: close
Content-Type: image/jpeg
缓存过的
Cache-Control: max-age=2592000
Expires: Tue, 28 Mar 2006 16:23:52 GMT
Last-Modified: Wed, 22 Feb 2006 12:16:56 GMT
ETag: “b57d54”
Accept-Ranges: bytes
Content-Length: 17895
Connection: close
Content-Type: image/jpeg
Content-Language: en
附:
apache配置文件例子:
example 1
# htm files are php
AddHandler application/x-httpd-php .php .htm
# setup errordocuments to local php file
ErrorDocument 404 /cgi-bin/error.htm
ErrorDocument 403 /cgi-bin/error.htm
ErrorDocument 500 /cgi-bin/error.htm
# Turn on Expires and set default expires to 3 days
ExpiresActive On
ExpiresDefault A259200
# Set up caching on media files for 1 month
<FilesMatch “\.(ico|gif|jpg|jpeg|png|flv|pdf|swf|mov|mp3|wmv|pp t)$”>
ExpiresDefault A2419200
Header append Cache-Control “public”
</FilesMatch>
# Set up 2 Hour caching on commonly updated files
<FilesMatch “\.(xml|txt|html|js|css)$”>
ExpiresDefault A7200
Header append Cache-Control “private, must-revalidate”
</FilesMatch>
# Force no caching for dynamic files
<FilesMatch “\.(php|cgi|pl|htm)$”>
ExpiresDefault A0
Header set Cache-Control “no-store, no-cache, must-revalidate, max-age=0”
Header set Pragma “no-cache”
</FilesMatch>
example 2
# htm files are php
AddHandler application/x-httpd-php .php .htm
# setup errordocuments to local php file
ErrorDocument 404 /cgi-bin/error.htm
ErrorDocument 403 /cgi-bin/error.htm
ErrorDocument 500 /cgi-bin/error.htm
# Turn on Expires and set default to 0
ExpiresActive On
ExpiresDefault A0
# Set up caching on media files for 1 year (forever?)
<FilesMatch “\.(ico|flv|pdf|mov|mp3|wmv|ppt)$”>
ExpiresDefault A29030400
Header append Cache-Control “public”
</FilesMatch>
# Set up caching on media files for 1 week
<FilesMatch “\.(gif|jpg|jpeg|png|swf)$”>
ExpiresDefault A604800
Header append Cache-Control “public, proxy-revalidate”
</FilesMatch>
# Set up 2 Hour caching on commonly updated files
<FilesMatch “\.(xml|txt|html|js|css)$”>
ExpiresDefault A7200
Header append Cache-Control “private, proxy-revalidate, must-revalidate”
</FilesMatch>
# Force no caching for dynamic files
<FilesMatch “\.(php|cgi|pl|htm)$”>
ExpiresDefault A0
Header set Cache-Control “no-cache, no-store, must-revalidate, max-age=0, proxy-revalidate, no-transform”
Header set Pragma “no-cache”
</FilesMatch>
-end-
原始文章: Speed Up Sites with htaccess Caching (http://www.askapache.com/htaccess/speed-up-sites-with-htaccess-caching.html)
Correct link is: http://www.askapache.com/htaccess/speed-up-sites-with-htaccess-caching.html
🙂
=))))))
спасибо большое.
Читаешь это и думаешь….
да,но это еще и не все…
Забавно. 🙂
жжот))
Спасибо!, в цитатник!
Классно!
ух ты как крууууууууууутооооооо))
супер оригинально
Блеск.
тема реально старая
Классно!
потрясающие идеи…нам перенять бы …великолепно.
Отличная работа!
Какая прелесть!!!!!!!!!!!!)
Спасибо огромное!
Да, Именно так и было!:))
круто..взяла почти все))
Напомнили….Точно, все так.
забрала в цитатник, спасибо!
фантастика!…
Ничего себе подборочка!!!!!!! Великолепно!
Благодарю!
мдяяяя ….. *много думал*….
автору спасибо за пост !!
Большое спасибо! Есть ещё повод получить удовольствие… С вашего разрешения, беру.
…. вот так вот…..
Интересненько=)
Классно!
ммм)) так клёво))
Очень рада, что возникло желание взять этот пост в цитатник!
Интересненько=)
Забавно. 🙂
Красота, особенно первая фотка
Класс! Афтару респект!
Да, Именно так и было!:))
Ну жесть конечно…
Шикарно, возьму в дневник
Спасибки)))))) в цитатник!
jaqyxtdikhfwfmydbkkvhiwuqqjvdr
=))))))
Случайно увидел. Не ожидал.
а в каком это городе,какой стране??очень креативненько!!!!!)))))
Было интересно посмотреть!!!
Вам спасибо – за тёплый приём )
Шикарно, возьму в дневник
Случайно увидел. Не ожидал.
забрала в цитатник, спасибо!
“подробней пожалуйста”
“Всегда приятно читать умных людей”
“Мне очень помогали ваши записи”
“Ты один из немногих, кто действительно хорошо пишет”
“Полезного много”
очень красиво, вот бы у нас так сделали
С чистым юмором.
“Превосходно”
ну что тут скажешь…
круто..взяла почти все))
ух ты как крууууууууууутооооооо))
класс)мне понра)особенно!
“Классный пост”
“здорово!”
“Занятно”
“Спасибо за статью”
“Прикольно”
очень красиво, вот бы у нас так сделали
Хороший пост! Подчерпнул для себя много нового и интересного!
Пойду ссылку другу дам в аське 🙂
– Наш интернет-каталог керамической плитки и сантехники http://plitkahouse.com.ua предлагает товары от ведущих мировых производителей: кафельная плитка,настенная , а также облицовочная плитка ; сантехника – биде . В нашем каталоге Вы также найдете смесители для ванны . У нас представлены самые последние коллекции керамогранита . Богатая цветовая гамма облицовочной плитки позволяет подобрать от нежных постельных тонов до ярких и вызывающих. Если Вы хотите, чтобы Ваша ванная комната вызывала восторги Ваших гостей, то все должно быть на высшем уровне: ванна, раковина . Наши облицовочная и напольная плитка не оставят Ваших гостей равнодушными. Большой выбор размеров и стилей сантехники позволит создать эксклюзивный интерьер в Вашем офисе.Как сделать свой дом уютным и красивым? Легко! Ответ – керамическая напольная , керамогранит в Киеве, тел:(044)-362-35-57. В нашем интернет- каталоге только дизайнерская керамическая сантехника (смесители, раковины, , цены которых более чем доступны. Обратившись в наш интернет каталог, Вы получите качественный товар, который будет радовать Вас своим видом ни один год! Мы будем рады видеть Вас среди наших клиентов!