Hi,
ich möchte die Downloads meiner Programme zählen lassen, die URLs sollen aber weiterhin auf die Original-Datei zeigen z. B.
http://www.cap-systems.com/files/coo...5.10_setup.exe
Also hab ich mir mit einer htaccess-Datei eine mod_rewrite Regel definiert die eine PHP-Datei aufruft, den Counter zählen lässt und dann die Datei zum download anbietet. Das sieht so aus:
.htaccess
Code:
RewriteRule ^files/cookiecrumbler/(.*)$ /includes/download.php?filename=cookiecrumbler/$1 [L]
download.php
Code:
<?php
$allowedfileexts = array('exe', 'zip', '7z', '
dll', 'dat', '
xml');
if(file_exists('/www/htdocs/XXX/files/' . $_GET['filename']))
{
$fileinfo = pathinfo('/www/htdocs/XXX/files/' . $_GET['filename']);
if(in_array(strtolower($fileinfo['extension']), $allowedfileexts))
{
header('Content-type: application/' . $fileinfo['extension']);
header('Content-Disposition: attachment; filename="' . $fileinfo['filename'] . '.' . $fileinfo['extension'] . '"');
readfile('/www/htdocs/XXX/files/' . $_GET['filename']);
//BEGIN: chCounter
$chCounter_visible = 0;
$chCounter_status = 'active';
include('/www/htdocs/XXX/includes/chcounter/counter.php');
//END: chCounter
}
}
else
{
die('File not found!');
}
?>
Leider wird der Zähler durch den oben angegebenen Link nicht erhöht. Rufe ich das Script direkt auf mit z. B. download.php?filename=cookiecrumbler/CookieCrumbler_1.5.10_setup.exe erhalte ich eine leere Seite die unendlich lange lädt. Rufe ich das Script aber mit einer
XML-Datei als Parameter auf funktionierts: download.php?filename=pad/cookiecrumbler.xml
Was ist an der mod-rewrite-Regel und der PHP-Datei falsch?