Tăng tốc blog của bạn bằng .htaccess

Hẳn các bạn còn nhớ bài viết trước đây trên Hutek.info về cách tăng tốc blog toàn diện, trong bài viết đó anh Hutek đã giới thiệu cho chúng ta một trong những cách tăng tốc blog đó là sử dụng tính năng Gzip nhằm nén các file lại trước khi tải về nhằm giảm số request đến server.
Nếu như theo bài viết đó, chúng ta phải sửa code để có thể sử dụng tính năng Gzip thì hôm nay, mình xin giới thiệu với các bạn 2 cách để sử dụng tính năng Gzip mà không phải sửa code mà chỉ cần thêm vài dòng vào file .htaccess

Cách 1: Sử dụng Module Mod_Gzip

Yêu cầu: Đây là một External Module nên yêu cầu nhà cung cấp Web Hosting của bạn phải hỗ trợ Module này.
Dưới đây là đoạn code mà bạn sẽ chèn vào file .htaccess của mình

<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>

Nguồn tham khảo

Cách 2: Sử dụng Module Mod_Deflare

Với những bạn xài host nền tảng Apache 2.0 thì có 1 module khác được tích hợp sẵn trong Apache là mod_deflare.
Chèn đoạn code sau vào file .htaccess của bạn

# BEGIN Compress text files
<IfModule mod_deflate.c>
  <FilesMatch "\.(css|js|x?html?|php)$">
    SetOutputFilter DEFLATE
  </FilesMatch>
</IfModule>
# END Compress text files
 
# BEGIN Expire headers
<IfModule mod_expires.c>
  ExpiresActive On
  ExpiresDefault "access plus 1 seconds"
  ExpiresByType image/x-icon "access plus 2592000 seconds"
  ExpiresByType image/jpeg "access plus 2592000 seconds"
  ExpiresByType image/png "access plus 2592000 seconds"
  ExpiresByType image/gif "access plus 2592000 seconds"
  ExpiresByType application/x-shockwave-flash "access plus 2592000 seconds"
  ExpiresByType text/css "access plus 604800 seconds"
  ExpiresByType text/javascript "access plus 216000 seconds"
  ExpiresByType application/javascript "access plus 216000 seconds"
  ExpiresByType application/x-javascript "access plus 216000 seconds"
  ExpiresByType text/html "access plus 600 seconds"
  ExpiresByType application/xhtml+xml "access plus 600 seconds"
</IfModule>
# END Expire headers
 
# BEGIN Cache-Control Headers
<IfModule mod_headers.c>
  <FilesMatch "\.(ico|jpe?g|png|gif|swf)$">
    Header set Cache-Control "max-age=2592000, public"
  </FilesMatch>
  <FilesMatch "\.(css)$">
    Header set Cache-Control "max-age=604800, public"
  </FilesMatch>
  <FilesMatch "\.(js)$">
    Header set Cache-Control "max-age=216000, private"
  </FilesMatch>
  <FilesMatch "\.(x?html?|php)$">
    Header set Cache-Control "max-age=600, private, must-revalidate"
  </FilesMatch>
</IfModule>
# END Cache-Control Headers
 
# BEGIN Turn ETags Off
<IfModule mod_headers.c>
  Header unset ETag
</IfModule>
FileETag None
# END Turn ETags Off
 
# BEGIN Remove Last-Modified Header
<IfModule mod_headers.c>
  Header unset Last-Modified
</IfModule>
# END Remove Last-Modified Header

Nguồn tham khảo

Chỉ vài dòng với file .htaccess là bạn đã có thể tăng tốc blog của mình rồi đấy, chúc các bạn thành công.

Phản hồi (36) | Gửi một phản hồi

  1. Mình xài cả 2 đoạn code trên có nhanh ko bác. :D

    Reply
  2. Quá hay, cám ơn bạn đã chia sẻ

    Reply
  3. cho mình hỏi 2 host free là Summerhost và ByetHost dùng cách này được không bạn

    Reply
    • Mình không rõ là Summerhost và Byehost có chỉnh được file htaccess không vì mình chưa xài nên không nói được. Nếu bạn Login vào FTP và thấy file .htaccess thì có thể làm theo.

      Reply
      • uhm mình đã làm được trên summerhost vì đang xài cái này còn byethost chưa test nhưng cũng cám ơn đã chia sẽ blog mình tăng tốc rất đáng kể :D

        Reply
  4. Cho em hỏi là em đang dùng WP Super Cache, đã bật Gzip thì có thể dùng cách trên không ạ ? Vì em thấy khi dùng WP Super Cache chỉ gzip được vài file :|

    Reply
    • Bạn có thể thử tắt WP Super Cache và sử dụng các cách trên để gzip :D

      Reply
  5. Các bác cho em hỏi, 2 cách trên thì chỉ dùng 1 chong 2 hay dùng cả 2 cùng 1 lúc cũng được thế :D

    Reply
  6. Chào bạn.Cho mình hỏi câu hỏi hơi ngoài lề 1 tí :)
    Hiện tại thì Blog mình có quá nhiều Categories nên việc hiển thị tất cả các Categories chiểm hơi nhiều không gian. Mình muốn chia Categories ra thành 2 cột như hình dưới

    http://ca4.upanh.com/10.158.14296482.XTP0/edit.jpg

    Không biết nên chỉnh sửa gì hay có plugin nào giúp việc này ko.
    Site của mình ( anhsau.info/Blog )
    Bạn giúp mình với :)

    Reply
  7. chà hay nhỉ

    Reply
  8. Cái này có áp dụng được cho website không vậy bác? hay chỉ dành cho blog?

    Reply
  9. Mình dùng host FPT không hỗ trợ htaccess thì làm sao :(

    Reply
  10. Có ai thử chưa? Có tăng được nhiều không?
    Vẫn đề tốc độ cũng đang làm đau đầu nhiều blogger!

    Reply
    • gzip là cách tăng hữu hiệu và đơn giản nhất đấy, nên thử

      Reply
      • Anh Hutek cho em hỏi là em đang dùng Maxcdn và W3 Total Cache, nhưng khi em sử dùng dạng Mirror thì chẳng thấy file nào load từ cdn.tapvietblog.info cả. Em thấy ở blog anh có load từ CDN, ở eblogviet và 1 số blog khác nữa, có mỗi blog em là khác.

        Reply
        • chú dùng w3 total cache thì ko nên dùng gzip bằng php nữa, bỏ hết đi và chuyển về dạng file bình thường, vì để đuôi php nó ko nhận đâu, anh thấy chú cấu hình vậy đúng rồi, chỉ còn mỗi lỗi đó thôi

          Reply
          • Thảo nào trước khi gzip lại file css và file js em vẫn thấy trên CDN, gzip vào lại không thấy nữa. Có lẽ em để gzip thôi, CDN chắc cứ kệ nó vậy vì host em đặt ở US, giờ maxcdn vẫn chưa có ở châu Á.

            Cảm ơn anh vì đã giúp đỡ em. Hôm trước em gửi tin nhắn hỏi cái này qua Gtalk cho anh rồi :D

            Reply
      • Đúng là như vậy, em đang áp dụng nó, nhưng nói trước là nó xung đột VS plugins All in One SEO pack nhé

        Reply
  11. Mình dùng Hybrid nên phải thêm cái code gzip vào file header.php. Giờ có thêm 2 cách này nữa thì trong 3 cách cách nào tốt nhất vậy ?

    Reply
    • Theo mình thì cách sử dụng Mod_Gzip nhỉnh hơn 2 cách kia 1 tí vì bạn chỉ phải thêm vài dòng vào .htaccess thôi mà không cần can thiệp trực tiếp vào code. Đặc biệt chỉ cần copy và paste nên đơn giản và hiệu quả :D

      Reply
      • Bạn có thể nói rõ hơn cho mình biết là nó hiệu quả hơn 2 cái kia thế nào không ? Mình dùng W3 Total Cache thì thấy cái nén HTML bằng deflate chứ không phải deflare. Hiện mình đang bật cả gzip và deflate (best) nhưng không thấy thay đổi gì nhiều lắm.

        Reply
        • À, lúc gõ mình nhầm. Deflate mới đúng.
          Nếu bạn đã dùng W3 Total Cache rồi thì mình nghĩ không cần xài thêm cách thêm dòng vào .htaccess này đâu vì W3 Total Cache đã làm những công việc tương tự rồi. Còn về thay đổi hay không thì phải nhờ công cụ đánh giá chuyên dụng thì mới biết được, có thể sử dụng YSlow của Yahoo và test trước và sau khi thực hiện.

          Reply
          • Có vẻ cái code của deflate hơi thừa :D Mà khi mình xem YSlow thì cái CDN và Header Expired bị điểm F, làm thế nào nhì ?

            Reply
            • YSlow nó có gợi ý phương pháp khắc phục mà bạn :D

              Reply
              • Có gợi ý nhưng mình không biết cách xử lý ý chứ :D
                Bạn có thể xem giúp mình tại đây :
                http://img12.imageshack.us/img12/246/yslowtvb.jpg
                Hoặc check hộ trên trang của mình với.

                Reply
                • Về mặt CDN, điểm dựa trên nhà cung cấp CDN mà bạn dùng, nhưng tiếc 1 cái là thằng YSlow lại dựa trên cái list các nhà CDN của Yahoo nên nhiều khi không có tên nhà cung cấp CDN của bạn. Vì vậy có thể làm theo hướng dẫn của link sau
                  http://developer.yahoo.com/yslow/faq.html#faq_cdn
                  Còn về Expire headers là khoảng thời gian mà mấy cái file được trình duyệt cache lại. Xem đoạn mod_deflate bạn sẽ thấy có 1 khúc nó set thời gian Expire headers
                  Với lại mình vừa check trang bạn, gần như là A hết rồi mà, chỉ có cái CDN là F thôi, chắc tại bạn chưa dùng CDN cho blog

                  Reply
                • Ừ, do mình cấu hình cdn không chuẩn ý mà :D Cảm ơn Shiho nhé :-”

                  Reply
  12. Cho mình hỏi mình dùng modun này cho nukeviet được không bạn

    Reply
    • tất cả các web cài trên server Linux và có Apache đều xài được :D

      Reply
  13. Làm cách nào để biết nó có hoạt động hay không?

    Reply
    • Bác chỉ cần nhìn hiệu quả sau khi cài vào là biết ấy mà :D
      Ngoài ra, bác có thể kiểm tra bằng cách xài YSlow trước và sau khi xài tính năng này.

      Reply
  14. Thanks bác, để e thử xem có nhanh hơn không :D ~O)

    Reply
  15. chỉ việc copy vôi thôi hả bác, đơn giản quá vậy, để em thử xem sao… thanks bác :D

    Reply
    • :D Đúng rồi bạn, chỉ việc copy và paste, cái này đơn giản, hiệu quả

      Reply

Gửi một phản hồi

  Tự động TELEX Tắt

:D ^:)^ ~O) :P =(( =P~ :(( =)) more »

jQuery('#large_banner').cycle({
    fx:     'scrollDown', 
    easing: 'bounceout', 
    delay:  -4000,
    timeout: 8000 
});
jQuery('#breaking_news').cycle({
    fx:     'scrollDown', 
    delay:  -4000 
});