آنچه در این آموزش خواهید آموخت:
مخفی کردن لینک دانلود با افزونه Simple Download Monitor
مخفی کردنه لینک دانلود با استفاده از دستور htaccess و PHP
گاهی ممکن است وقتی فایلی برای دانلود در سایت خود قرار میدهید تمایل به مخفی کردن لینک اصلی دانلود از کاربر داشته باشید. در این آموزش ما راه کار هایی را برای مخفی کردن لینک دانلود فایل به شما یاد خواهیم داد.
1. افزونه Simple Download Monitor
یکی از راه های محدود و یا مخفی کردن لینک دانلود مستقیم از طریق افزونه Simple Download Monitor میباشد.
جهت کار با این افزونه ابتدا آن را نصب و فعالسازی کنید.
دانلود افزونه Simple Download Monitor
پس از فعالسازی افزونه در بخش پیشخوان وردپرس شما بخشی به نام Downloads اضافه میشود. پس از ورود به این بخش روی زیرمنوی Add New کلیک کنید تا صفحه زیر برای شما نمایش داده شود.
Description:
در این بخش میتوانید عنوان و توضیحات موردنظرتان برای فایل را وارد کنید.
Download File:
بخش دوم این صفحه جهت وارد کردن آدرس فایل است همچنین دکمه Select File برای شما قرار داده شده تا با کلیک بر روی آن فایل مورد نظر را انتخاب کنید.
PHP Dispatch or Redirect:
بخش سوم فقط دارای یک گزینه میباشد ‚ تیک آن را فعال نمایید تا لینک فایل مخفی شود.
Miscellaneous Download Item Properties:
بخش چهارم برای شما امکانات زیر را فراهم آورده است:
1. باز کردن صفحه دانلود در پنجره جدید
2. مخفی کردن دکمه دانلود در صفحه اصلی
3. غیرفعال کردن صفحه دانلود
4. نادیده گرفتن تنظیمات “فقط مجاز به بارگیری کاربران ورود به سیستم”
File Thumbnail:
این بخش اختیاری است و امکان استفاده از عکس برای فایل دانلودی را برای شما تهیه دیده است. که با کلیک بر روی Select Image میتوانید تصویر مورد نظر را انتخاب کنید و با کلیک بر روی Remove Image آن را حذف کنید.
Other Details:
شما میتوانید از طریق این بخش اطلاعات دیگری نیز اضافه کنید:
1. سایز فایل
2. ورژن یا نسخه
3. تاریخ انتشار
4. متن دکمه دانلود
Statistics:
این بخش که تعداد دانلود ها را به نمایش میگذارد ‚ به شما این امکان را میدهد تا عددی برای شروع این آمار انتخاب کنید.
Shortcodes:
آخرین بخش نیز کد های کوتاه فایل را نمایش میدهد تا با استفاده از آنها فایل را به اشتراک بگذارید.
2. استفاده از دستور htaccess و PHP
از دیگر راه های مخفی کردن لینک دانلود استفاده از دستورات htaccess و PHP میباشد.
دستور htaccess برای جلوگیری از دانلود مستقیم
در ابتدا وارد کنترل پنل هاست خود شوید. اگر از cPanel استفاده میکنید وارد File Manager و اگر از Plesk استفاده میکنید وارد بخش Files شده و فایل htaccess را بیابید.
آموزش نحوه ورود به هاست سیپنل CPanel
درصورتی که از سیپنل استفاده میکنید و قادر به یافتن این فایل نبودید آموزش زیر را دنبال کنید.
نمایش فایل های مخفی و htaccess در CPanel
این آموزش را با یک مثال ادامه میدهیم. در فایل htaccess دستورات زیر قرار دارد:
RewriteEngine on
RewriteRule ^file/([^/]+)(\.zip|\.pdf|\.jpg)$ /public-html/folder/download.php?file=$1$2 [NC,L]
public-html: دایرکتوری اصلی یا همان پوشه روت سایت را مشخص میکند
folder: یک پوشه در دایرکتوری اصلی سایت ما محسوب میشود
download.php: این فایل و فایل های دیگری برای دانلود در پوشه folder وجود دارد
کاربر در زمان دانلود فایلی به نام test.zip در واقع لینک زیر را از سرور درخواست میکند:
http://Yoursite.ir/public-html/folder/test.zip
Yoursite.ir: همان دامنه سایت شما محسوب میشود
اما با توجه به دستور RewriteRule که در اول گفته بودیم کاربر بدون آنکه خود متوجه آن باشد لینک زیر را از سرور درخواست میکند:
http://Yoursite.ir/public-html/folder/download.php?file=test.zip
شما توانستید مسیر لینک کاربر را از حالت مستقیم به غیرمستقیم تغییر دهید.
بررسی مجوز و ارسال فایل جهت دانلود با PHP
در این بخش PHP بررسی مجوز های ورود را انجام میدهد و در صورت درست بودن شرایط فایل موردنظر را جهت دانلود به مرورگر کاربر ارسال میکند.
در پایین نمونه ای برای درک بهتر آموزش برای شما تهیه دیده ایم:
<?php
@$file_name = $_GET[‘folder’];
//echo $file_name;
//بررسی مجوز های کاربر
//تعیین مجوز های کاربر به عهده شماست
$user_access = TRUE;
//کاربر مجاز به دانلود است
if($user_access == TRUE){
//تابع برای بدست آوردن پسوند فایل
function getExtension($file){
preg_match(‘/\.[^\.]+$/i’, $file, $ext);
return $ext[0];
}
//نوع فایل
$file_type = NULL;
switch(getExtension($file_name)){
case ‘zip’:
$file_type = ‘application/zip’;
break;
case ‘pdf’:
$file_type = ‘application/pdf’;
break;
case ‘jpg’:
$file_type = ‘image/jpeg’;
break;
}
//ارسال فایل به مرورگر برای دانلود
ob_start();
header(‘Content-Description: File Transfer’);
//header(‘Content-Type: application/octet-stream’);
header(‘Content-Type: ‘.$file_type);
header(‘Content-Disposition: attachment; filename=’.$file_name);
header(‘Content-Transfer-Encoding: binary’);
header(‘Expires: 0’);
header(‘Cache-Control: must-revalidate, post-check=0, pre-check=0’);
header(‘Pragma: public’);
header(‘Content-Length: ‘.filesize(“$file_name”));
ob_clean();
flush();
readfile(“$file_name”);
exit;
}
?>
<!doctype html>
<html>
<head>
<meta charset=”utf-8″>
<title>هاست نگار | مخفی کردن لینک اصلی دانلود فایل ها</title>
<!– https://hostnegar.com –>
</head>
<body>
<?php
//کاربر مجاز به دانلود نیست
if($user_access == FALSE){
echo ‘Error!’;
}
?>
</body>
</html>
فایل موردنظر از طریق متد GET به فایل PHP ارسال میشود. بنابراین متغیر file_name به این ترتیب مقداردهی میشود.
از این لحظه به بعد پارامتر ها به دلخواه شما میتواند تغییر کند بصورتی که شما دستوری را در نظر گرفته و در انتها بخش user_access را تعیین میکنید. بخش user_access را میتوان بصورت TRUE (کاربر مجاز به دسترسی) یا FALSE (عدم اجازه دسترسی کاربر) مقدار دهی کرد.
آموزش های مرتبط:
آموزش غیر فعال کردن افزونه در وردپرس
آموزش رفع مشکل نصب نشدن افزونه ها
آموزش نحوه ورود به هاست سیپنل CPanel