2017-10-22 3 views
0

Betrachten Sie diese URL erhalten: http://example.com/file.mp3?hash=ajhfsjdhfjksf546sdfWie handhaben zu Anfrage throw MP3-Dateien in PHP

Also, meine Frage ist, wie kann ich diese Anfrage bekommen umgehen?

Um zu bestimmen, ob dieser Hash heruntergeladen werden darf oder nicht?

+0

Sie könnten Apaches 'mod_rewrite' verwenden, um eine Regel zu erstellen, die etwas wie' file.mp3? Hash = ajhfsjdhfjksf546sdf' sieht und sie nach 'file.php? File = file.mp3 & hash = ajhfsjdhfjksf546sdf' umleitet. Dann wird 'file.php' in der Lage sein, die Logik des Zugriffs zu überprüfen. –

+0

@NickCoons Haben Sie ein Codebeispiel dafür? – Masoud

+0

Ich habe eine Antwort mit dem Code dafür geschrieben. Bitte lassen Sie mich wissen, wenn es Ihren Bedürfnissen entspricht. –

Antwort

0

In meinem Kommentar auf Ihre Fragen, die ich vorgeschlagen:

Sie Apache verwenden könnte mod_rewrite eine Regel zu erstellen, die so etwas wie file.mp3?hash=ajhfsjdhfjksf546sdf sieht und leitet es zu file.php?file=file.mp3&hash=ajhfsjdhfjksf546sdf. Dann wird file.php in der Lage sein, die Logik des Zugriffs zu überprüfen. Hier

ist der Code für .htaccess um dies zu erreichen:

RewriteCond %{QUERY_STRING} hash=(.*)$ 
RewriteRule ^(.*)\.mp3$ file.php?file=$1.mp3&hash=%1 [L] 

Das sieht nach einem hash= Wert in der Abfragezeichenfolge, und stimmt mit einem zu (something).mp3 genannt. Es fängt das (etwas) ein und übergibt es als Wert an das PHP-Skript.

Nun, wenn ich file.mp3?hash=ajhfsjdhfjksf546sdf nennen, dann file.php den folgenden Satz haben:

$_GET['file'] == 'file.mp3' 
$_GET['hash'] == 'ajhfsjdhfjksf546sdf' 

Mit diesen Werten können Sie jetzt laufen, was auch immer überprüfen Sie mögen, und wenn es pases, liefert file.mp3 an den Client .

Verwandte Themen