rewrite, apache, https

zdravim, řešíme problém s IE7, jako jediný prohlížeč nám odmítá zobrazovat soubory pdf, doc a xls, zkrátka, které sám neotevírá, ale používá externí apliaci. Toto se ovšem vyskytuje jen v případě mod_rewritu, které používáme před uživateli, které znají přímou cestu, ale už nemají práva se příhlásit ... skript posílá nasledující hlavičky

if (isset($mimetypes[$ext]))
{
header("Content-Type: {$mimetypes[$ext]}");
}

$flen = filesize("{$url}data/{$client}/{$folder}/{$file}");

header("Content-Length: " . $flen);
header("Content-disposition: inline; filename="{$file}"");
readfile("{$url}data/{$client}/{$folder}/{$file}");

nemáte někdo s tímto zkušenost ... díky za jakékoli info.
Teď jsem to moc nepochopil.
Proč titulek " rewrite, apache, https"?
To běží skrz HTTPS?

"Toto se ovšem vyskytuje jen v případě mod_rewritu, které používáme před uživateli, které znají přímou cestu, ale už nemají práva se příhlásit"
nechápu :P

A co že to vlastně má dělat?
>To běží skrz HTTPS?
Ano, veškerou komunikaci s http jsem přesměrovali na https

v naší aplikaci je adresář "data" v něm jsou soubory ke klientům, pdf, doc, jpg, tif atd.
nyní zde máme nějakých 150 uživatelů a občas se stane, že se s někým nedohodneme a deaktivujeme mu účet, jenže on když byl příhlášený, má možnost tyto přílohy ke klientům prohlížet a vidí pak v prohlížeci https://naseaplikace/data/klient/soubor.?, aby se zabranilo, aby toto provedl kdyz neni prihlaseny (popr. ma zakazany pristup) je tam .htaccess pravidlo

RewriteEngine On
RewriteRule (.*)/(.*)/(.*)$ ./index.php?client=$1&folder=$2&file=$3 [L]
(obsah index.php je v první příspěvku)

pokud toto pravidlo vyhodim, tak je vše v pořádku, ale pokud ho mam aktivni, tak IE7 mi ty soubory nezobrazi, pokud se je snazi otevrit v externi aplikaci (pdf, doc, xls)
ma to zkráta znemožnit přístup do toho adresáře data, když není uživatel příhlášený k aplikaci, to je celé
Tak zkus upravit skript tak, aby soubor vzdy stahoval bez ohledu na pozadavek prohlizece (otevreni externi aplikace).

Myslim, ze staci jen

header ("Content-Type: application/octet-stream");
A to řešíš takhle?
Napadá mě: .htaccess :: deny from all - zakázat přístup do adresáře se soubory zvenčí.

PHP: jednoduchá podmínka:
if($user_allow == true) download($_GET['file']);
else Header('HTTP/1.1 403 Forbidden');
// pokud není uživatel zablokován, stáhnout mu soubor, jinak chybu 403

A ty tvé hlavičky upravit tak, aby obsah vždy stahovaly (viz Tomík)
ano taky by šlo to natvrdo stahovat, ale uživatele jsou tu rozmazlení a chtěji aby se jim to otevřelo v okně IEshitu :-)
Jirka: "ale uživatele jsou tu rozmazlení"
Je na čase, aby si zvykali na tvrdý režim ;)
tak vyřešeno,

navíc posílám

pragma: cache
cache-control: cache

a ono to najednou jde, apache v tomto případě sám posílal pragma: no-cache, cache-control: no ...

:-)