دانلود به جای پخش ویدئو یا موسیقی معمولاً با هدر پاسخ فایل کنترل میشود. مرورگر بعضی فرمتها را مستقیماً باز میکند؛ برای پیشنهاد ذخیرهٔ فایل، سرور میتواند Content-Disposition را روی attachment قرار دهد. این تنظیم حفاظت از محتوا یا جلوگیری از کپی نیست و رفتار نهایی به مرورگر و تنظیمات کاربر هم وابسته است.
پیش از تنظیم دانلود به جای پخش
نشانی واقعی فایل را مشخص کنید. اگر فایل روی هاست دانلود یا CDN قرار دارد، تغییر htaccess سایت اصلی ممکن است هیچ اثری نداشته باشد. همچنین تصمیم بگیرید فقط یک پوشه یا پسوند خاص باید دانلود شود. اجرای قانون روی تمام سایت میتواند تصویر، پیشنمایش و پخشکنندهٔ صفحات را مختل کند.
هدر مناسب چیست؟
طبق راهنمای Content-Disposition، مقدار attachment به ارائهٔ محتوا بهصورت دانلود اشاره میکند. نمونهٔ هدر پاسخ:
Content-Disposition: attachment
این هدر با Content-Type فرق دارد. برای اجبار دانلود، تغییر بیدلیل همهٔ رسانهها به application/octet-stream لازم نیست. نوع صحیح فایل را نگه دارید و رفتار دانلود را در پاسخ همان فایل مشخص کنید. اگر نام دانلود را نیز تعیین میکنید، ساختار filename و برای نام غیراَسکی filename* باید درست باشد.
نمونهٔ Apache برای یک پوشهٔ دانلود
اگر سرویس Apache یا محیط سازگار از htaccess و mod_headers پشتیبانی میکند، در فایل htaccess همان پوشهٔ هدف این قانون را اضافه کنید. قواعد موجود را پاک یا جایگزین نکنید:
<FilesMatch "(?i)\.(mp4|mp3|mkv)$">
Header set Content-Disposition "attachment"
</FilesMatch>
این نمونه پسوندهای مشخصشده را بدون حساسیت به بزرگی حروف انتخاب میکند. FilesMatch محدودهٔ فایلها را تعیین میکند و mod_headers هدر پاسخ را تنظیم میکند. امکان استفاده از دستور در htaccess به مجوزهای پیکربندی سرور بستگی دارد. محل فایل نیز باید زیر ریشهٔ واقعی دامنهٔ فایل باشد، نه لزوماً public_html سایت اصلی.
دستور ناقص AddType application/octet-stream بدون پسوند را وارد نکنید. اگر پس از تغییر خطای 500 ظاهر شد، فقط تغییر تازه را برگردانید و لاگ را برای ماژول یا دستور غیرمجاز بررسی کنید؛ کل htaccess را حذف نکنید.
اگر سرور Nginx، برنامه یا CDN فایل را میفرستد
Nginx فایل htaccess را نمیخواند. در این محیط، هدر باید در تنظیم مسیر مناسب سرور یا برنامهٔ پاسخدهنده تعیین شود. اگر دانلود از PHP یا لینک امضاشده عبور میکند، تنظیم همان پاسخ اهمیت دارد. قانون یک وبسرور را در دیگری کپی نکنید.
CDN ممکن است پاسخ قبلی را ذخیره یا هدر را تغییر دهد. پس از اصلاح مبدأ، کش همان فایل را طبق امکانات سرویس بهروز کنید و پاسخ نهایی کاربر را بررسی کنید. بهجای تغییر همزمان چند لایه، از مبدأ فایل شروع کنید تا علت روشن بماند.
آزمون نتیجه
از بخش Network ابزار توسعهٔ مرورگر، درخواست واقعی فایل را باز کنید و Content-Disposition را در Response Headers ببینید. سپس لینک را در مرورگر معمولی آزمایش کنید. دانلود یک فایل غیررسانهای و پخشکنندههای دیگر سایت نیز باید سالم مانده باشند.
اگر هدف شما هم پخش آنلاین و هم دانلود است، مسیر یا پاسخ مخصوص دانلود طراحی کنید تا قانون attachment روی منبع پخشکننده اعمال نشود. برای فایلهای فروشی، احراز هویت، مجوز دریافت و اعتبار لینک را جدا مدیریت کنید؛ تغییر این هدر بهتنهایی مانع دسترسی دیگران نمیشود.
مطالعهٔ مرتبط
بازبینی فنی: ۱۳ آبان ۱۴۰۵. تاریخ انتشار اولیه و نشانی قبلی حفظ شدهاند.