PDA

View Full Version : سوال: مشکل با htaccess



CodeKhor
سه شنبه 17 آذر 1394, 15:15 عصر
سلام
دوستان من تو ساخت لینک user friendly به مشکل خوردم به این شکل که یه فایل download.php دارم با کد زیر که همه چی اوکی هست کد php من اجرا میشه و فایل هم برای دانلود به مرورگر کاربر ارسال میشه ! حالا به جز مشکلی که با htaccess دارم میخواستم بدونم لینک دانلود به این شکل به cpu هاست فشار نمیاره ؟ یعنی اصلا این کار اصولی هست ؟




<?php
$filename=$_GET['fil'];
$location=$filename;
$extension = substr(strrchr($filename,'.'),1);
if ($extension == "mp3") {
$mimeType = "audio/mpeg";
} else if ($extension == "ogg") {
$mimeType = "audio/ogg";
}
if (!file_exists($location))
{
header ("HTTP/1.1 404 Not Found");
return;
}

$size = filesize($location);


$fm = @fopen($location, 'rb');
if (!$fm)
{
header ("HTTP/1.1 505 Internal server error");
return;
}

$begin = 0;
$end = $size - 1;

if (isset($_SERVER['HTTP_RANGE']))
{
if (preg_match('/bytes=\h*(\d+)-(\d*)[\D.*]?/i', $_SERVER['HTTP_RANGE'], $matches))
{
$begin = intval($matches[1]);
if (!empty($matches[2]))
{
$end = intval($matches[2]);
}
}
}
if (isset($_SERVER['HTTP_RANGE']))
{
header('HTTP/1.1 206 Partial Content');
}
else
{
header('HTTP/1.1 200 OK');
}

header("Content-Type: $mimeType");
header('Cache-Control: public, must-revalidate, max-age=0');
header('Pragma: no-cache');
header('Accept-Ranges: bytes');
if (isset($_SERVER['HTTP_RANGE']))
{

header("Content-Range: bytes $begin-$end/$size");
}
header("Content-Disposition: inline; filename=$filename");
header("Content-Transfer-Encoding: binary");
header("Last-Modified: $time");

$cur = $begin;
fseek($fm, $begin, 0);

while(!feof($fm) && $cur <= $end && (connection_status() == 0))
{
print fread($fm, min(1024 * 16, ($end - $cur) + 1));
$cur += 1024 * 16;
}

?>



بعد کد فایل htaccess من هم این هست



RewriteEngine on
RewriteBase /

RewriteRule ^(.*).(mp3)$ /wp-content/themes/legolas/download.php?fil=$1.$2 [L,NC,QSA]


همونطور که بالا هم گفتم الان کد htaccess و download.php من اوکی هستن و کار میکنن ولی به شرطی که فایل mp3 و download.php من کنار خود htaccess باشن !!!!!
ولی من میخوام به این شکل باشه که هر لینکی توی سایت به این شکل بود http://dl.mysite.ir/example.mp3 به فایل download.php فرستاده بشه و از اونجا دانلود بشه ! یعنی تمام لینک هایی که با dl شروع میشن ! لطفا راهنمایی کنید که چه تغییراتی باید توی htaccess اعمال بشه :ناراحت: