آموزش فشرده‌سازی فایل‌ها با Gzip/Deflate از طریق .htaccess

Gzip و Deflate چیست و چرا باید فعال شوند؟

Gzip و Deflate دو روش فشرده‌سازی داده در سطح وب‌سرور هستند. هنگامی که یک بازدیدکننده درخواست بارگذاری یک صفحه وب را می‌دهد، سرور به جای ارسال فایل‌های خام HTML، CSS و JavaScript، آن‌ها را فشرده می‌کند (مانند یک فایل Zip) و سپس ارسال می‌کند. مرورگر کاربر این فایل فشرده را دریافت کرده و آن را از حالت فشرده خارج می‌کند.

نتیجه: حجم داده‌های انتقالی بین سرور و کاربر تا ۷۰٪ کاهش می‌یابد که به معنای بارگذاری سریع‌تر سایت و کاهش مصرف پهنای باند است.


بخش اول: بررسی وضعیت فشرده‌سازی

قبل از اعمال هرگونه کد، باید مطمئن شوید که فشرده‌سازی در حال حاضر فعال نیست.

۱. بررسی با ابزارهای آنلاین

  • از ابزارهای آنلاین مانند GTmetrix یا Google PageSpeed Insights برای تحلیل سایت خود استفاده کنید.

  • در بخش توصیه‌های سرعت، اگر هشداری مانند "Enable text compression" یا "Enable Gzip/Deflate" مشاهده می‌کنید، باید آن را فعال کنید.

۲. استفاده از ابزار داخلی cPanel (روش توصیه شده)

اگر هاست شما از ابزار Optimize Website پشتیبانی می‌کند (که در مقاله ۱۷ به آن اشاره شد)، بهترین راه فعال‌سازی، استفاده از همان ابزار است:

  1. وارد cPanel شوید.

  2. به بخش Software و سپس Optimize Website بروید.

  3. گزینه Compress all content را فعال و ذخیره کنید.

توجه: اگر فعال‌سازی از طریق ابزار cPanel موفقیت‌آمیز بود، نیازی به اضافه کردن دستی کد به فایل .htaccess نیست.


بخش دوم: فعال‌سازی دستی Gzip/Deflate با .htaccess

اگر ابزار Optimize Website در cPanel شما وجود نداشت یا به درستی کار نکرد، می‌توانید این فشرده‌سازی را مستقیماً از طریق فایل تنظیمات سرور (.htaccess) فعال کنید.

۱. دسترسی به فایل .htaccess

  1. وارد File Manager در cPanel شوید.

  2. به پوشه public_html بروید.

  3. فایل .htaccess را پیدا کرده، روی آن راست کلیک کرده و Edit را انتخاب کنید.

    • (اگر فایل را نمی‌بینید، از Settings در بالای صفحه، گزینه Show Hidden Files (dotfiles) را فعال کنید.)

۲. افزودن کد فشرده‌سازی

کد زیر را قبل از هر دستور دیگری در ابتدای فایل .htaccess قرار دهید:

Apache
 
# BEGIN GZIP/DEFLATE COMPRESSION
<IfModule mod_deflate.c>
    # فشرده سازی انواع فایل های متنی و کد
    AddOutputFilterByType DEFLATE text/plain
    AddOutputFilterByType DEFLATE text/html
    AddOutputFilterByType DEFLATE text/xml
    AddOutputFilterByType DEFLATE text/css
    AddOutputFilterByType DEFLATE application/xml
    AddOutputFilterByType DEFLATE application/xhtml+xml
    AddOutputFilterByType DEFLATE application/rss+xml
    AddOutputFilterByType DEFLATE application/javascript
    AddOutputFilterByType DEFLATE application/x-javascript
    AddOutputFilterByType DEFLATE application/x-httpd-php
    AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
    AddOutputFilterByType DEFLATE application/x-font
    AddOutputFilterByType DEFLATE font/ttf
    AddOutputFilterByType DEFLATE font/opentype
    AddOutputFilterByType DEFLATE font/eot
    AddOutputFilterByType DEFLATE font/svg
    AddOutputFilterByType DEFLATE image/svg+xml
</IfModule>
# END GZIP/DEFLATE COMPRESSION
  1. فایل را ذخیره (Save Changes) کنید.


بخش سوم: عیب‌یابی و نکات مهم

۱. خطای ۵۰۰ پس از اعمال کد

  • اگر بلافاصله پس از ذخیره فایل .htaccess با خطای ۵۰۰ Internal Server Error مواجه شدید، به این معنی است که وب‌سرور شما (احتمالاً Nginx به جای آپاچی یا تنظیمات خاص دیگر) از ماژول mod_deflate پشتیبانی نمی‌کند.

  • راهکار: فوراً کد اضافه شده را حذف کنید و سایت خود را بررسی نمایید. در این حالت، باید برای فعال‌سازی فشرده‌سازی با پشتیبانی هاست خود تماس بگیرید.

۲. ناهماهنگی با ابزارهای کش

  • اگر از افزونه‌های کش وردپرس (مانند WP Rocket) یا کش سرور (LiteSpeed) استفاده می‌کنید، این ابزارها اغلب فشرده‌سازی Gzip را به صورت خودکار فعال می‌کنند.

  • راهکار: اگر از این افزونه‌ها استفاده می‌کنید، ابتدا تنظیمات فشرده‌سازی آن‌ها را بررسی کنید و از تداخل با کدهای دستی در .htaccess خودداری نمایید.

۳. حذف تکرارها در وردپرس

  • اگر سایت شما وردپرسی است، اطمینان حاصل کنید که کدهای فشرده‌سازی در بخش تنظیمات افزونه‌های بهینه‌سازی یا کش، تکرار نشده باشند. تکرار کد می‌تواند باعث تداخل شود.

  • 0 کاربر این را مفید یافتند
آیا این پاسخ به شما کمک کرد؟

مقالات مربوطه

تفاوت DNS، Nameserver و IP و چگونگی تنظیم Nameserver دامنه

آدرس‌دهی در اینترنت چگونه کار می‌کند؟ اینترنت بر پایه آدرس‌های عددی (IP) کار می‌کند، اما ما برای...

راهنمای جامع رفع مشکل عدم ارسال یا دریافت ایمیل (بررسی SPF, DKIM, DMARC)

چرا ایمیل‌های من به Inbox نمی‌روند یا اصلاً ارسال/دریافت نمی‌شوند؟ برای اطمینان از اعتبار دامنه...

آموزش کامل آپلود فایل‌ها روی هاست با File Manager یا نرم‌افزار FTP

چطور فایل‌های وب‌سایت خود را به سرور منتقل کنیم؟ برای نمایش وب‌سایت شما، فایل‌های آن باید به...

نحوه ورود به cPanel و معرفی بخش‌های اصلی

cPanel چیست و چرا به آن نیاز دارم؟ cPanel (سی‌پنل) محبوب‌ترین کنترل پنل مدیریتی برای سرویس‌های...

آموزش ساخت اکانت ایمیل در cPanel و تنظیم آن روی Outlook/Gmail/Mobile

چرا به ایمیل‌های حرفه‌ای نیاز داریم؟ ایجاد ایمیل با دامنه شخصی (مانند info@yourdomain.com) نه...