Autor Zpráva
balutbj
Profil
Dobrý večer a ahoj všem,
nejde mi do hlavy, proč vynucení stahování funguje jen v případě, že přístupuji pomocí IP adresy. Když tam přicházím přes hostname, server mi vyplivne chybu 500.

Takhle vypadá část mého htaccessu, která se týká rewritu:
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^(.*).download .download.php?file=$1 [NC,QSA,L]
A takhle ten php skript
<?php
error_reporting(0);
$file = str_replace("<end>","",str_replace(".download<end>","",$_REQUEST['file']."<end>"));
if(stristr($file,".download.php")){die();}
header('Content-type: application/octet-stream');
header("Content-Disposition: attachment; filename=".$file);
header("Content-Description: File Transfer");
header("Content-Length: ".filesize($file));
readfile($file);
?>
Následují odkazy: přístup přes hostname a zde přes IP
Kajman
Profil
Mrkněte se do error logu apache, proč to padá. Může být např. v konfiguraci pache pro tu doménu zakázané používání modu rewrite v .htaccess souboru.

Nebo se to může zacyklit. To by řešilo např.
RewriteRule ^(\.|.*\.php$) - [NC,S]
RewriteRule ^(.*)\.download$ .download.php?file=$1 [NC,QSA,L]

A v prvním pravidle je vhodné podchytit všechny soubory, které není vhodné nechat uživatele stahovat.
balutbj
Profil
Kajman:
Mrkněte se do error logu apache, proč to padá. Může být např. v konfiguraci pache pro tu doménu zakázané používání modu rewrite v .htaccess souboru.
správce mi to prý nezakazoval a podívá se do logu

Nebo se to může zacyklit. To by řešilo např.
pořád to nefunguje :(

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: