【问题标题】:Xampp .HTAccess maximum caching / GZIP / speedXampp .HTAccess 最大缓存/GZIP/速度
【发布时间】:2013-11-20 22:54:58
【问题描述】:

我正在尝试使用我的 .htaccess 实现最佳缓存/gzip/速度,到目前为止我什么都没有,有人可以帮我实现吗?

【问题讨论】:

  • 一些 .htaccess 示例,但它们破坏了我的网站

标签: .htaccess caching xampp gzip


【解决方案1】:

如果您从单个 Apache 服务器(或据我所知的任何服务器)提供所有资源,则 GZip 和缓存实际上无法协同工作。这很复杂,但您可以在这里阅读:

https://issues.apache.org/bugzilla/show_bug.cgi?id=39727

在此跳至 Roy Fielding 关于这种方法徒劳的概要:

https://issues.apache.org/bugzilla/show_bug.cgi?id=39727#c31

基本上,您破坏了一些 HTTP 的动词(PUT 和条件 GET),以至于在处理一系列服务器时变得非常难以管理。

简而言之,只需启用客户端缓存即可最大程度地提升性能。如果您可以提供来自不同服务器的不同文件(例如 staticfiles.mydomain.com 和 dynamicfiles.mydomain.com),那么您可以在不缓存动态内容的情况下启用 GZip。

这是 .htaccess 中静态文件缓存的基本设置(推荐):

# Apache Cache Setting
<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresDefault "access plus 1 hours"
    ExpiresByType text/html "modification plus 1 days"
    ExpiresByType text/css "modification plus 1 days"
    ExpiresByType application/x-javascript "modification plus 1 days"
    ExpiresByType application/javascript "modification plus 1 days" 
    ExpiresByType image/gif "access plus 1 years"
    ExpiresByType image/jpeg "access plus 1 years"
    ExpiresByType image/jpg "access plus 1 years"
    ExpiresByType image/png "access plus 1 years"
    EXpiresByType application/x-shockwave-flash "access plus 1 years"
    ExpiresByType video/x-flv "access plus 1 years"
</IfModule>

如果您不关心上面的论点,有一个解决方法 如果你真的想同时启用缓存和 GZip(但不推荐):

SetOutputFilter DEFLATE 

<IfModule mod_deflate.so>
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/atom_xml
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/x-httpd-php
AddOutputFilterByType DEFLATE image/svg+xml
</IfModule>

<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 1 hours"
ExpiresByType text/html "modification plus 1 days"
ExpiresByType text/css "modification plus 1 days"
ExpiresByType application/x-javascript "modification plus 1 days"
ExpiresByType application/javascript "modification plus 1 days" 
ExpiresByType image/gif "access plus 1 years"
ExpiresByType image/jpeg "access plus 1 years"
ExpiresByType image/jpg "access plus 1 years"
ExpiresByType image/png "access plus 1 years"
EXpiresByType application/x-shockwave-flash "access plus 1 years"
ExpiresByType video/x-flv "access plus 1 years"
</IfModule>

# remove the ETag (which circumvents the problem but invalidates
# an important part of the caching (i.e. uniqueness).  
# This is not a good thing!!
FileETag None

祝你好运! :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-07
    • 2013-01-22
    • 1970-01-01
    • 1970-01-01
    • 2010-11-09
    • 2016-10-29
    • 1970-01-01
    • 2012-02-08
    相关资源
    最近更新 更多