2017-07-28 65 views
4

我試圖優化我的店,我已經加入Gzip已代碼和槓桿瀏覽器緩存代碼在我.htaccess文件:gzip壓縮,並利用瀏覽器緩存工作不適合我的商店

# Leverage browser caching using mod_expires # 
<IfModule mod_expires.c> 
    ExpiresActive On 
    ExpiresByType image/jpg "access plus 1 year" 
    ExpiresByType image/jpeg "access plus 1 year" 
    ExpiresByType image/gif "access plus 1 year" 
    ExpiresByType image/png "access plus 1 year" 
    ExpiresByType text/css "access plus 1 month" 
    ExpiresByType application/pdf "access plus 1 month" 
    ExpiresByType text/x-javascript "access plus 1 month" 
    ExpiresByType application/x-shockwave-flash "access plus 1 month" 
    ExpiresByType image/x-icon "access plus 1 year" 
    ExpiresDefault "access plus 2 days" 
</IfModule> 
# End of Leverage browser caching using mod_expires # 

# Leverage browser caching using mod_headers # 
<IfModule mod_headers.c> 
    <FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$"> 
     Header set Expires "Wed, 15 Apr 2020 20:00:00 GMT" 
     Header set Cache-Control "public" 
    </FilesMatch> 
</IfModule> 
# End of Leverage browser caching using mod_headers # 
+0

您是否檢查過在Apache中啓用了這些模塊?你如何檢查它是否被使用? –

+0

您問過的好問題,不斷問及在這裏分享知識@ Randhir –

+0

謝謝@DeepakKumar – Randhir

回答

5

啓用mod_headers中的Apache和指定mod_expires模塊

請檢查指定mod_expires和mod_headers中通過下面的代碼在你的商店啓用與否。

<?php phpinfo();?> 

如果兩個擴展不無法將您的服務器,請按照下列步驟操作: -

第1步: -

現在使用SSH登錄到服務器控制檯並繼續以下步驟:

要啓用mod_headers中:

sudo a2enmod headers 

要啓用指定mod_expires:

sudo a2enmod expires 

第2步: -

完成服務器更新後,您需要重啓Apache服務器 以使這些更改生效。在您的SSH控制檯 中輸入以下行重新啓動Apache。

service apache2 restart 

或者通過在SSH下面的代碼重新啓動服務器:

reboot 

使用下面的.htaccess文件的代碼。

<IfModule mod_headers.c> 
    # YEAR 
    <FilesMatch "\.(ico|gif|jpg|jpeg|png|flv|pdf)$"> 
      Header set Cache-Control "max-age=29030400" 
    </FilesMatch> 
    # WEEK 
    <FilesMatch "\.(js|css|swf|woff)$"> 
     Header set Cache-Control "max-age=604800" 
    </FilesMatch> 
    # 45 MIN 
    <FilesMatch "\.(html|htm|txt)$"> 
     Header set Cache-Control "max-age=86400" 
    </FilesMatch> 

    Header set Connection keep-alive 

</IfModule> 

<ifModule mod_gzip.c> 
    mod_gzip_on Yes 
    mod_gzip_dechunk Yes 
    mod_gzip_item_include file \.(html?|txt|css|js|php|pl|asp|html)$ 
    mod_gzip_item_include handler ^cgi-script$ 
    mod_gzip_item_include mime ^text/.* 
    mod_gzip_item_include mime ^application/x-javascript.* 
    mod_gzip_item_exclude mime ^image/.* 
    mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.* 
</ifModule> 

<ifmodule mod_deflate.c> 
    AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript 
</ifmodule> 

清除您的商店緩存並重新加載您的網站URL後,重新檢查gtmetrix工具或任何您正在使用的工具。

+0

謝謝你的詳細解釋,你讓我的一天..現在工作正常,我檢查了GTmetrix工具我的網站速度看起來不錯。再次感謝@ Umesh Kumar – Randhir

+0

很好的解釋,謝謝 –

+0

真的很好回答。 –

0

這裏是GZIP代碼壓縮

<ifModule mod_deflate.c> 

    SetOutputFilter DEFLATE 
    AddOutputFilterByType DEFLATE text/html text/css text/plain text/xml application/x-javascript application/x-httpd-php 
    BrowserMatch ^Mozilla/4 gzip-only-text/html 
    BrowserMatch ^Mozilla/4\.0[678] no-gzip 
    BrowserMatch \bMSIE !no-gzip !gzip-only-text/html 
    BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html 
    SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip 
    Header append Vary User-Agent env=!dont-vary 
</ifModule> 

<ifModule mod_gzip.c> 
    mod_gzip_on Yes 
    mod_gzip_dechunk Yes 
    mod_gzip_item_include file .(html?|txt|css|js|php|pl)$ 
    mod_gzip_item_include handler ^cgi-script$ 
    mod_gzip_item_include mime ^text/.* 
    mod_gzip_item_include mime ^application/x-javascript.* 
    mod_gzip_item_exclude mime ^image/.* 
    mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.* 
</ifModule> 

並充分利用瀏覽器緩存你的代碼是正確的,但如果沒有,那麼你的工作有檢查指定mod_expires和mod_headers中模塊在服務器上啓用。