.htaccess забрана на директен даунлоад

Nikol4u

Registered
Как мога да направя ако примерно имам папка:

/public_html/files/

И в нея много .rar-ове

директно:

http://site.com/files/myfile.rar

да не мога да го изтегля, но да мога да го изтегля през

http://site.com/file.php?file=myfile.rar
 
zEskO каза:
Код:
RewriteRule ^files/(.*)\.rar$ file.php?file=$1 [L]

Това не е това, което исках. Искам след този RewriteRule да не мога директно да свалям файловете от files/ а САМО през php файла
 
file.php
Код:
<?
$path = $_SERVER['DOCUMENT_ROOT']."/files/";
$fullPath = $path.$_GET['download_file'];
 
if ($fd = fopen ($fullPath, "r")) {
    $fsize = filesize($fullPath);
    $path_parts = pathinfo($fullPath);
    $ext = strtolower($path_parts["extension"]);
    switch ($ext) {
        case "pdf":
        header("Content-type: application/pdf");
        header("Content-Disposition: attachment; filename=\"".$path_parts["basename"]."\"");
        break;
        case "rar":
        header("Content-type: application/rar");
        header("Content-Disposition: attachment; filename=\"".$path_parts["basename"]."\"");
        break;
/*
        case "...":
        header("Content-type: ...");
        header("Content-Disposition: attachment; filename=\"".$path_parts["basename"]."\"");
        break;
*/
        default;
        header("Content-type: application/octet-stream");
        header("Content-Disposition: filename=\"".$path_parts["basename"]."\"");
    }
    header("Content-length: $fsize");
    header("Cache-control: private");
    while(!feof($fd)) {
        $buffer = fread($fd, 2048);
        echo $buffer;
    }
}
fclose ($fd);

?>
Тук може да видиш всички разширения:
http://www.file-extensions.org

.htaccess в папка files

Код:
Order Deny,Allow
Deny from all
 

Back
Горе