Ahoj,
potřeboval bych poradit jak nastavit .htaccess nebo co nastavit na webu, aby když kliknu na odkaz https://lolkovi.cz/pack_de , kde soubor pack_de je .gz balíček přímo v adresáři bez přípony .gz a mně se stáhne a doplní se přípona .gz automaticky. Já ho chci stahovat bez přípony.
Díky
.htaccess ? uložení bez přípony Vyřešeno
-
- nováček
- Příspěvky: 30
- Registrován: listopad 09
- Pohlaví:
- Stav:
Offline
Re: .htaccess ? uložení bez přípony
Pokud má web podporu mod rewrite tak do
.htaccess přidáš
a vytvoříš download.php s
Kdyžtak si přidej koncovky (vypis těch který to nemá zpracovávat) v "(xml|php|hmtl|shtml|phtml|txt|exe|zip|rar)" kdyby jich bylo málo
.htaccess přidáš
Kód: Vybrat vše
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_URI} !^\/([a-zA-Z0-9]+)\.(xml|php|hmtl|shtml|phtml|txt|exe|zip|rar)$
RewriteRule ^([^.]+)$ https://%{SERVER_NAME}/download.php?file=$1
a vytvoříš download.php s
Kód: Vybrat vše
<?php
if (isset($_GET["file"])) {
// Get parameters
$file = urldecode($_GET["file"]); // Decode URL-encoded string
/* Check if the file name includes illegal characters
like "../" using the regular expression */
if (preg_match('/^[^.][-a-z0-9_.]+[a-z]$/i', $file)) {
$filepath = "./" . $file;
// Process download
if (file_exists($filepath)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="' . basename($filepath).'.gz"');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($filepath));
flush(); // Flush system output buffer
readfile($filepath);
die();
} else {
http_response_code(404);
die();
}
} else {
die("Invalid file name!");
}
}
?>
Kdyžtak si přidej koncovky (vypis těch který to nemá zpracovávat) v "(xml|php|hmtl|shtml|phtml|txt|exe|zip|rar)" kdyby jich bylo málo
„Zeptáš-li se, budeš 5 minut vypadat jako blbec. Nezeptáš-li se, budeš blbcem po celý život.“
„Mnozí z těch, co žijí, by zasluhovali smrt. A mnozí z těch, co zemřeli, by si zasloužili žít.“ - John Ronald Reuel Tolkien
„Je lepší být nenáviděn pro to, jaký jsi, než být milován pro to, co nejsi.“ - Kurt Cobain
https://rhscz.eu
https://github.com/rhsCZ
-
- nováček
- Příspěvky: 30
- Registrován: listopad 09
- Pohlaví:
- Stav:
Offline
Re: .htaccess ? uložení bez přípony
Děkuji. Tohle funguje.
Jen jsem ještě musel umazat gz, aby to uložilo bez koncovky, ale to jsme si možná jen nerozuměli.
Teď ještě bojuji jak to nastvit abych mohl mít i v jiném adresáři. Budu zkoušet, ale budu i rád za druhé nakopnutí.
Díky
Dodatečně přidáno po 4 hodinách 52 minutách 4 vteřinách:
Tak nakonec jsem to zvládl zadáním pevnou andresou, ale určitě by to šlo nějak i dynamicky podle složky ve které se nachází.
Díky
Jen jsem ještě musel umazat gz, aby to uložilo bez koncovky, ale to jsme si možná jen nerozuměli.
Kód: Vybrat vše
header('Content-Disposition: attachment; filename="' . basename($filepath).'"');
Teď ještě bojuji jak to nastvit abych mohl mít i v jiném adresáři. Budu zkoušet, ale budu i rád za druhé nakopnutí.
Díky
Dodatečně přidáno po 4 hodinách 52 minutách 4 vteřinách:
Tak nakonec jsem to zvládl zadáním pevnou andresou, ale určitě by to šlo nějak i dynamicky podle složky ve které se nachází.
Kód: Vybrat vše
RewriteRule ^([^.]+)$ https://%{SERVER_NAME}/(doplněné složky)/download.php?file=$1
Díky
Re: .htaccess ? uložení bez přípony Vyřešeno
jde to jinak stačilo poupravit download.php (umí v podsložkách i v kořenovém adresáři) a nechat původní .htaccess
Jinak prvně jsem tě asi špatně pochopil.
Kód: Vybrat vše
<?php
if (isset($_GET["file"])) {
// Get parameters
$file = urldecode($_GET["file"]); // Decode URL-encoded string
/* Check if the file name includes illegal characters
like "../" using the regular expression */
if (preg_match('/^[^.][\/\\\-a-zA-Z0-9_.]+[a-zA-Z]$/i', $file)) {
$filepath = "" . $file;
// Process download
if (file_exists($filepath)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="' . basename($filepath).'"');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($filepath));
flush(); // Flush system output buffer
readfile($filepath);
die();
} else {
http_response_code(404);
die();
}
} else {
die("Invalid file name!");
}
}
?>
Jinak prvně jsem tě asi špatně pochopil.
„Zeptáš-li se, budeš 5 minut vypadat jako blbec. Nezeptáš-li se, budeš blbcem po celý život.“
„Mnozí z těch, co žijí, by zasluhovali smrt. A mnozí z těch, co zemřeli, by si zasloužili žít.“ - John Ronald Reuel Tolkien
„Je lepší být nenáviděn pro to, jaký jsi, než být milován pro to, co nejsi.“ - Kurt Cobain
https://rhscz.eu
https://github.com/rhsCZ
Zpět na “Internet a internetové prohlížeče”
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 24 hostů