Laden Sie den Download an einen anderen Ort um, behalten Sie jedoch die URL

529
vaid

Ich versuche herauszufinden, wie ich einen Link auf meine Website setzen kann, der es einem Besucher ermöglicht, eine Datei herunterzuladen, die sich https://www.website.com/file.zipaber tatsächlich unter befindet https://255.255.255.255/actual_file.zip.

Ich habe noch nichts ausprobiert, weil ich es für mein Leben nicht hypothetisch, theoretisch oder praktisch herausfinden kann.

Ja, ich habe Google verwendet, obv.

0
Was läuft Ihre Website? Läuft es Apache? php? CGI? asp? LPChip vor 6 Jahren 0

1 Antwort auf die Frage

0
LPChip

Es gibt viele Möglichkeiten, dies zu tun, je nachdem, was Ihr Server unterstützt.

Da Sie php und html als Tags für Ihre Frage angegeben haben, beschränke ich mich auf diese Antwort, aber ich gehe davon aus, dass Apache dahinter läuft, was auch verwendet werden könnte.

Grundsätzlich möchten Sie ein Skript oder eine Seite erstellen, die auf die neue URL umleitet.

Die einfachste und eleganteste Option ist die Verwendung von PHP, also beginne ich mit dieser.

Sie erstellen beispielsweise eine neue Seite, die aufgerufen wird download.phpund in Ihnen zur URL weitergeleitet wird. Ich könnte ein komplettes Auswahlskript mit Sicherheitsüberprüfungen usw. schreiben, aber das ist nicht Gegenstand dieser Frage und wäre auch für Stack Overflow besser geeignet.

<?php $file = $_GET['file']; header("Location: https://255.255.255.255/".$file); ?> 

Beachten Sie, dass das Schreiben eines neuen Headers voraussetzt, dass vom Skript keine vorherige Ausgabe erfolgte. Andernfalls schreibt jede Ausgabe einen Standardheader auf die Seite, und der Headerbefehl funktioniert nicht.

Sie würden jetzt Hyperlinks machen wie:

<a href="https://www.example.com/download.php?file=actual_file.zip">Download</a> 

HTML würde eine Seite für jede Datei und Tags erfordern, um zum Download umzuleiten. Dies würde bedeuten, dass sich die URL ändern würde, aber Dateien können über diese Seiten gesteuert werden.

Schließlich kann htaccess verwendet werden, um die Datei download.php zu maskieren.

Htaccess kann auch alles ohne PHP-Script ausführen, aber nicht sicher, ob Sie Apache verwenden.

In Anbetracht dessen, dass es sich um einen Proxy handelt, wird die Datei zuerst auf den Server heruntergeladen, egal wie sie gedreht wird. Oder wäre es nur für den Benutzer getunnelt? vaid vor 6 Jahren 0
Es ist für den Benutzer getunnelt. Wenn Sie möchten, dass der Server dies herunterlädt, benötigen Sie viel mehr Code, da Sie den Download wahrscheinlich auch zwischenspeichern möchten. Dies bedeutet, dass Sie ihn an einen lokalen Ort herunterladen und dann das Skript an diesen Ort umleiten. Eine solche Frage würde definitiv PHP erfordern und wäre für einen Stapelüberlauf geeignet. LPChip vor 6 Jahren 0
Aha. Dann ist Ihr Vorschlag genau das, wonach ich suche. Ich muss tunneln. vaid vor 6 Jahren 0