Ich mach das meist so, dass ich Downloadzähler sowie URL der Datei in einer Datenbank speicher und dann eine download.php?id=X aufrufen lasse, die dann in der Datenbank den Counter der Datei mit der ID X erhöht und dann zu dieser Datei weiterleitet. Eine, die ich neulich geschrieben hab, sieht zum Beispiel so aus:
Dies gibt natürlich auch keine Sicherheit, dass die Datei direkt aufgerufen wird, ohne dass das registriert wird, aber vielleicht noch mehr als mit diesem ?file=datei.zip. Natürlich lässt sich das hier auch irgendwie mit Textdateien verwirklichen, aber mit MySQL ist's wohl deutlich einfacher.